Coleções de Scala - Fluxo

Scala Stream é uma lista especial com recurso de avaliação lenta. No fluxo do scala, os elementos são avaliados apenas quando são necessários. O Stream oferece suporte à computação lenta e ao desempenho.

Declaração de variáveis ​​de fluxo

A seguir está a sintaxe para declarar uma variável Stream.

Sintaxe

val stream = 1 #:: 2 #:: 3 #:: Stream.empty

Aqui, stream é declarado como um stream de números. Aqui, 1 é a cauda do rio, 2, 3 são a cauda do rio. Stream.empty marca o fim do fluxo. Os valores podem ser recuperados usando comandos take como os seguintes -

Comando

stream.take(2)

Stream de processamento

Abaixo está um programa de exemplo mostrando como criar, inicializar e processar Stream -

Exemplo

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")
   }
}

Salve o programa acima em Demo.scala. Os seguintes comandos são usados ​​para compilar e executar este programa.

Comando

\>scalac Demo.scala
\>scala Demo

Resultado

Stream(1, <not computed>)
1, 2
Stream: Stream()