Scala - printing arrays
scala
Solution
In Scala 2.8, you can use the `deep` method defined on Array, that returns an IndexedSeq cointaining all of the (possibly nested) elements of this array, and call mkString on that:
scala> val array = Array.fill(2,2)(0)
array: Array[Array[Int]] = Array(Array(0, 0), Array(0, 0))
scala> println(array.deep.mkString("\n"))
Array(0, 0)
Array(0, 0)
The IndexedSeq returned does have a stringprefix 'Array' by default, so I'm not sure whether this gives precisely what you wanted.
Problem
It seems like the support for printing arrays is somewhat lacking in Scala. If you print one, you get the default garbage you'd get in Java: ``` scala> val array = Array.fill(2,2)(0) array: Array[Array[Int]] = Array(Array(0, 0), Array(0, 0)) scala> println(array) [[I@d2f01d ``` Furthermore, you cannot use the Java toString/deepToString methods from the java.util.Arrays class: (or at least I cannot figure it out) ``` scala> println(java.util.Arrays.deepToString(array)) <console>:7: error: type mismatch; found : Array[Array[Int]] required: Array[java.lang.Object] println(java.util.Arrays.deepToString(array)) ``` The best solution I could find for printing a 2D array is to do the following: ``` scala> println(array.map(_.mkString(" ")).mkString("\n")) 0 0 0 0 ``` Is there a more idiomatic way of doing this?