在Scala中创建并填充二维数组

ast*_*ein 7 arrays scala scala-collections

在Scala中创建预先填充的二维数组的推荐方法是什么?我有以下代码:

val map = for {
    x <- (1 to size).toList
} yield for {
        y <- (1 to size).toList
    } yield (x, y)
Run Code Online (Sandbox Code Playgroud)

如何制作数组而不是列表?用.toArray替换.toList不会编译.还有比嵌套表达式更简洁或可读的方法吗?

Dan*_*ral 9

在Scala 2.7上,使用Array.range:

for {
  x <- Array.range(1, 3)
} yield for {
  y <- Array.range(1, 3)
} yield (x, y)
Run Code Online (Sandbox Code Playgroud)

在Scala 2.8上,使用Array.tabulate:

Array.tabulate(3,3)((x, y) => (x, y))
Run Code Online (Sandbox Code Playgroud)