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

Trying to declare an array of a certain size in Scala

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

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

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

Array[Int](arr_size) 创建一个只有一个元素的数组,arr_size,通常写成 Array(arr_size),假设 arr_size 类型是 Int

改用这个:

Array.ofDim[Int](arr_size).

您还可以使用更函数式的方法并在初始化期间直接填充数组,例如通过 Array.tabulate.

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

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

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

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

注释类型 Int0 决定了 Array 的类型。然而,完整的声明类型包括

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