Kolekcje Scala - Stream
Scala Stream to specjalna lista z funkcją leniwej oceny. W strumieniu scala elementy są oceniane tylko wtedy, gdy są potrzebne. Stream obsługuje leniwe obliczenia i zna wydajność.
Deklarowanie zmiennych strumienia
Poniżej przedstawiono składnię deklarowania zmiennej Stream.
Składnia
val stream = 1 #:: 2 #:: 3 #:: Stream.empty
Tutaj strumień jest zadeklarowany jako strumień liczb. Tutaj 1 to początek strumienia, 2, 3 to koniec strumienia. Stream.empty oznacza koniec strumienia. Wartości można pobrać za pomocą poleceń take, takich jak:
Komenda
stream.take(2)
Przetwarzanie strumienia
Poniżej znajduje się przykładowy program pokazujący, jak tworzyć, inicjować i przetwarzać Stream -
Przykład
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")
}
}
Zapisz powyższy program w formacie Demo.scala. Poniższe polecenia służą do kompilowania i wykonywania tego programu.
Komenda
\>scalac Demo.scala
\>scala Demo
Wynik
Stream(1, <not computed>)
1, 2
Stream: Stream()