Если использовать функциональный подход, это самый эффективный способ сделать это?
@tailrec
def readLine(in: SomeTypeOfBuffer, a: Array[Byte]): Array[Byte] = {
val char = in.readByte()
char match{
case '\n' => a
case other => readLine(in, a :+ other)
}
}
Поскольку каждый рекурсивный вызов создает новый массив, необходимо сделать еще один вызов памяти, чтобы выделить место для другого массив, а предыдущий массив освобожден из памяти.
Это просто цена функционального программирования?
(я относительно новичок в scala и функционален, поэтому, пожалуйста, не распинайте меня, если я что-то ужасно неправильно)