19

这听起来很容易,但我就是做不好。

如何在 Scala 中创建大小为 100 x 60 的二维数组?假设我有一个名为 Abcd 的类,我想创建一个 Abcd 的二维数组。我尝试使用以下代码但不起作用。

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

它抱怨“构造函数数组的参数太多”

4

3 回答 3

42

目前推荐的方法是使用ofDim

var myArray = Array.ofDim[Abcd](100, 60)
于 2013-04-02T01:42:56.520 回答
24

或者,如果您希望数组以 ABCD 而不是空值开头

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

或者如果 ABCD 因位置而有规律地变化

Array.tabulate[ABCD](100,6) { (i,j) => new ABCD(i,j) }
于 2013-04-02T08:08:47.773 回答
4

我知道这个问题得到了回答,但我遇到的一个问题是@alexwriteshere 的解决方案和@Chick 的解决方案只有在你想要一个矩阵时才有效。

为了能够创建一个二维数组(如果被视为第一个行数,然后是列数),请执行以下操作:

val array = Array.ofDim[Array[Char]](2)
array(0) = Array.ofDim[Char](10)
array(1) = Array.ofDim[Char](20)
于 2014-05-31T15:37:06.890 回答