Коллекции Scala - поток
Scala Stream - это специальный список с функцией отложенной оценки. В потоке scala элементы оцениваются только тогда, когда они необходимы. Stream поддерживает ленивые вычисления и отличается высокой производительностью.
Объявление переменных потока
Ниже приводится синтаксис объявления переменной Stream.
Синтаксис
val stream = 1 #:: 2 #:: 3 #:: Stream.empty
Здесь поток объявлен как поток чисел. Здесь 1 - начало потока, 2, 3 - конец потока. Stream.empty отмечает конец потока. Значения можно получить с помощью команд take, например следующих:
Команда
stream.take(2)
Поток обработки
Ниже приведен пример программы, показывающей, как создавать, инициализировать и обрабатывать Stream.
пример
import scala.collection.immutable.Stream
object Demo {
def main(args: Array[String]) = {
val stream = 1 #:: 2 #:: 3 #:: Stream.empty
// print stream
println(stream)
// Print first two elements
stream.take(2).print
println()
// Create an empty stream
val stream1: Stream[Int] = Stream.empty[Int]
// Print element
println(s"Stream: $stream1")
}
}
Сохраните указанную выше программу в Demo.scala. Следующие команды используются для компиляции и выполнения этой программы.
Команда
\>scalac Demo.scala
\>scala Demo
Вывод
Stream(1, <not computed>)
1, 2
Stream: Stream()