试图在 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)
注释类型 Int
的 0
决定了 Array
的类型。然而,完整的声明类型包括
Array.fill[Int](arr_size)(0)
Array.tabulate[Int](arr_size)(_ => 0)
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)
注释类型 Int
的 0
决定了 Array
的类型。然而,完整的声明类型包括
Array.fill[Int](arr_size)(0)
Array.tabulate[Int](arr_size)(_ => 0)