未初始化的字节数组是 Scala
Uninitialized byte array is Scala
中有这样一段代码
buf = new byte[size];
你能在 Scala 中做同样的事情,而不浪费时间对每个元素进行不必要的初始化吗?
Scala 等效项:
val buf = new Array[Byte](size)
一种方法是使用同伴对象的 .ofDim
方法:
scala> val buf = Array.ofDim[Byte](10)
buf: Array[Byte] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
(code behind it 与@Nyavro 的回答相同,因此他的解决方案实际上跳过了一个电话)。
.ofDim
可能有用的一个实例是创建多维数组(最多五个维度):
scala> val buf = Array.ofDim[Byte](5, 5)
buf: Array[Array[Byte]] = Array(Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0))
Array companion object 包含其他有用的创建数组的方法(例如 .fill
和 .tabulate
方法)
buf = new byte[size];
你能在 Scala 中做同样的事情,而不浪费时间对每个元素进行不必要的初始化吗?
Scala 等效项:
val buf = new Array[Byte](size)
一种方法是使用同伴对象的 .ofDim
方法:
scala> val buf = Array.ofDim[Byte](10)
buf: Array[Byte] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
(code behind it 与@Nyavro 的回答相同,因此他的解决方案实际上跳过了一个电话)。
.ofDim
可能有用的一个实例是创建多维数组(最多五个维度):
scala> val buf = Array.ofDim[Byte](5, 5)
buf: Array[Array[Byte]] = Array(Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0), Array(0, 0, 0, 0, 0))
Array companion object 包含其他有用的创建数组的方法(例如 .fill
和 .tabulate
方法)