Collezioni Scala - Metodo di scansione

Il metodo scan () è un membro del tratto TraversableLike, è simile al metodo fold ma viene utilizzato per applicare un'operazione su ogni elemento della raccolta e restituire una raccolta.

Sintassi

La seguente è la sintassi del metodo fold.

def scan[B >: A, That](z: B)(op: (B, B) ? B)(implicit cbf: CanBuildFrom[Repr, B, That]): That

In questo caso, il metodo di scansione accetta come parametro la funzione di operatore binario associativo. Questo metodo restituisce la raccolta aggiornata come risultato. Considera il primo input come valore iniziale e il secondo input come una funzione.

Utilizzo

Di seguito è riportato un programma di esempio che mostra come utilizzare il metodo di scansione:

Esempio

object Demo {
   def main(args: Array[String]) = {
      val list = List(1, 2, 3 ,4)
      //apply operation to create a running total of all elements of the list
      val list1 = list.scan(0)(_ + _)
      //print list
      println(list1)      
   }
}

Qui abbiamo passato 0 come valore iniziale per la funzione di scansione e quindi tutti i valori vengono aggiunti. Salvare il programma sopra in formatoDemo.scala. I seguenti comandi vengono utilizzati per compilare ed eseguire questo programma.

Comando

\>scalac Demo.scala
\>scala Demo

Produzione

List(0, 1, 3, 6, 10)