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)