2009-12-29 2 views

답변

4

REPL이 값의 스트링 표현을 생성하는 toString 방법을 사용한다. 따라서 :

Array(1, 2, 3).toString  // => "Array(1, 2, 3)" 

모든 스칼라 버전 (2.7, 2.8 등)에서 작동합니다.

+0

아, 나는'println'이'toString'을 사용한다고 가정하고 있었지만 분명히 scala.Array에서는 분명히 그렇지 않습니다. –

+3

아쉽게도'Array'와'toString' 둘 다에 많은 마법이 있습니다. 'println' 메쏘드는 (JVM상의)'System.out.println'에 위임합니다. 그래서 그 결과는 그 특정 객체에 대한'toString'의 * Java * 구현입니다. 스칼라는 무언가가'Array'라는 것을 알 때'toString'을 가로 챈다. 그러나 문제의 메소드 호출이 자바 코드 안에있을 때 그것을 수행 할 수 없다. –

+0

저는 1 년 늦었지만, 이것이 작동하는 방식이 아닙니다. Array (1, 2, 3) .toString을 2.8 repl에 넣으면 쉽게 확인할 수 있습니다. – extempore

2

더 일반적인 방법 (2.7 및 2.8에서와 동일) 배열 된 mkString 방법을 사용하는 것이다

scala> val a1 = Array(1, 2, 3) 
a1: Array[Int] = Array(1, 2, 3) 

scala> a1.mkString 
res0: String = 123 

scala> a1.mkString(", ") 
res1: String = 1, 2, 3