我可以在Scala中限制数组的大小吗?

kul*_*rni 10 arrays size scala

在Java中byte[] st = new byte[4096],暗示数组的大小st不会超过4096字节.

Scala等价物的st:Array[byte] = Array()大小未知.如果我正在读取一个巨大的文件到这个数组,那我怎么能限制数组的大小?

如果我不关心上述操作的大小,会不会有副作用?

Ste*_*all 28

var buffer = new Array[Byte](4 * 1024)
Run Code Online (Sandbox Code Playgroud)

工作正常,它的行为符合预期.


Ran*_*ulz 9

Java示例不会生成一个上限大小的数组,它会生成一个具有精确规定大小的数组,该数组在整个生命周期内都是固定的.Scala阵列在这方面是相同的.另外,这个:

val st: Array[Byte] = Array()
Run Code Online (Sandbox Code Playgroud)

分配长度为0的Byte(Java中的"byte")数组.

至于将文件读入数组,如果必须处理整个文件,则尝试分配所需的空间,如果失败,则无法继续.