Colecciones Scala - Stream
Scala Stream es una lista especial con función de evaluación diferida. En Scala Stream, los elementos se evalúan solo cuando son necesarios. Stream admite cálculos perezosos y es un experto en rendimiento.
Declaración de variables de flujo
La siguiente es la sintaxis para declarar una variable Stream.
Sintaxis
val stream = 1 #:: 2 #:: 3 #:: Stream.empty
Aquí, el flujo se declara como un flujo de números. Aquí 1 es la cabecera del arroyo, 2, 3 son la cola del arroyo. Stream.empty marca el final de la secuencia. Los valores se pueden recuperar usando comandos de toma como los siguientes:
Mando
stream.take(2)
Flujo de procesamiento
A continuación se muestra un programa de ejemplo que muestra cómo crear, inicializar y procesar Stream:
Ejemplo
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")
}
}
Guarde el programa anterior en Demo.scala. Los siguientes comandos se utilizan para compilar y ejecutar este programa.
Mando
\>scalac Demo.scala
\>scala Demo
Salida
Stream(1, <not computed>)
1, 2
Stream: Stream()