Я могу ограничить размер массива в Scala?

В Java byte[] st = new byte[4096], подразумевает тот размер массива st не превысит 4 096 байтов.

Эквивалентный Scala st:Array[byte] = Array() где размер неизвестен. Если я читаю огромный файл в этот массив, то, как я могу ограничить размер массива?

Будет какой-либо побочный эффект, если я не буду заботиться о размере о вышеупомянутой операции?

10
задан missingfaktor 9 February 2010 в 10:48
поделиться

2 ответа

var buffer = new Array[Byte](4 * 1024)

Работает просто отлично, и ведет себя, как и ожидалось.

28
ответ дан 3 December 2019 в 14:06
поделиться

В вашем примере Java не создается массив с верхней границей его размера, он создает массив с точно указанным размером, который фиксируется на протяжении всего срока его службы. . В этом отношении массивы Scala идентичны. Кроме того, это:

val st: Array[Byte] = Array()

выделяет массив байтов («байт» в Java) длины 0.

Что касается чтения файла в массив, если вы должны обработать весь файл, затем попытайтесь выделить необходимое пространство, и если это не удастся, вы не сможете продолжить.

9
ответ дан 3 December 2019 в 14:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: