Я хочу создать метод, который печатает матрицу размера N (предопределенного типа, в данном случае double, с N неизвестным и фиксированной длиной массива) с предопределенным форматом. Например, в матрице 2 * 2 * 2 (куб. c) типа Double результат должен быть таким: :
[
[
[
[0.0,0.0], [0.0,0.0]
],
[
[0.0,0.0], [0.0,0.0]
]
],
[
[
[0.0,0.0], [0.0,0.0]
],
[
[0.0,0.0], [0.0,0.0]
]
]
]
. На данный момент я создал такой метод, который не делает требуемый отступ:
def func(arr: Array[_]):String = {
var output = for (a <- arr) yield {
if ( a.isInstanceOf[Double] ) {
a
} else {
func(a.asInstanceOf[Array[_]])
}
}
output.mkString("[", ",", "]")
}
Эффективен ли подход, который я использую? Можно ли использовать функцию обратного вызова? Не могли бы вы дать мне несколько советов?