var arr = Array[Int](arr_size)
println(arr_size + " " + arr.size)
arr_size
是30但arr.size
是1?这是为什么?
我正在尝试声明一个空数组,我可以在以后的指定索引处填写。
答案 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)