Scala 2-мерная матрица

Это может показаться легким, но я просто не могу понять это.

Как создать 2-мерный массив размером 100 на 60 в Scala? Предположим, у меня есть класс под названием Abcd, и я хочу создать 2-мерный массив Abcd. Я пробовал со следующим кодом, но не работает.

var myArray = new Array[Array[Abcd]](100,60)

Он жалуется "слишком много аргументов для массива конструкторов"

Ответы

Ответ 1

В настоящее время рекомендуется использовать ofDim:

var myArray = Array.ofDim[Abcd](100, 60)

Ответ 2

Или, если вы предпочитаете, чтобы ваш массив начинался с ABCD вместо нулей

Array.fill[ABCD](100,6) { new ABCD }

или если ABCD изменяется каким-то регулярным образом по позиции

Array.tabulate[ABCD](100,6) { (i,j) => new ABCD(i,j) }

Ответ 3

Я знаю, что на этот вопрос ответили, но одна проблема, с которой я столкнулся, заключалась в том, что решение @alexwriteshere и решение @Chick были хорошими, если вы хотели получить матрицу.

Чтобы создать двумерный массив с (если смотреть как первое число строк, а затем количество столбцов), сделайте что-то вроде этого:

val array = Array.ofDim[Array[Char]](2)
array(0) = Array.ofDim[Char](10)
array(1) = Array.ofDim[Char](20)