Коллекции 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()