试图在Scala中声明一个特定大小的数组

时间:2015-06-14 17:58:16

标签: arrays scala scala-collections

var arr = Array[Int](arr_size)
println(arr_size + " " + arr.size)

arr_size是30但arr.size是1?这是为什么?

我正在尝试声明一个空数组,我可以在以后的指定索引处填写。

3 个答案:

答案 0 :(得分:4)

Array[Int](arr_size)创建一个包含一个元素arr_size的数组,并且通常写为Array(arr_size),假设arr_size类型为Int

请改用:

Array.ofDim[Int](arr_size)

您还可以使用更多功能方法并在初始化期间直接填充数组,例如Array.tabulate

答案 1 :(得分:3)

或者你可以new Array[Int](arr_size)

答案 2 :(得分:3)

要创建给定大小的Array[Int]并将其值初始化为0,请考虑其他基于API的方法,

var arr = Array.fill(arr_size)(0)

var arr = Array.tabulate(arr_size)(_ => 0)

Int的注意类型0决定了Array的类型。然而,类型的完整声明包括

Array.fill[Int](arr_size)(0)
Array.tabulate[Int](arr_size)(_ => 0)