通过放置类似的内容,可以很容易地在Java中初始化2D数组(或者实际上是任何多维数组):
int[][] x = new int[][] {
{ 3, 5, 7, },
{ 0, 4, 9, },
{ 1, 8, 6, },
};
Run Code Online (Sandbox Code Playgroud)
它易于阅读,类似于2D矩阵等.
但是我如何在Scala中做到这一点?
最好的我可以想出看起来,更简洁:
val x = Array(
Array(3, 5, 7),
Array(0, 4, 9),
Array(1, 8, 6)
)
Run Code Online (Sandbox Code Playgroud)
我在这里看到的问题:
Array),在每个Array调用中省略尾随如果我搞砸了,除了插入一些Array()在阵列的中间,它会好与编译器,但类型x将变得悄无声息Array[Any],而不是Array[Array[Int]]:
val x = Array(
Array(3, 5, 7),
Array(0, 4), 9, // <= OK with compiler, silently ruins x
Array(1, 8, 6)
)
Run Code Online (Sandbox Code Playgroud)
有一个防范它,直接指定类型,但它看起来比在Java中更难过:
val …Run Code Online (Sandbox Code Playgroud)