O método scan () é um membro do traço TraversableLike, é semelhante ao método dobra, mas é usado para aplicar uma operação em cada elemento da coleção e retornar uma coleção.
Sintaxe
A seguir está a sintaxe do método fold.
def scan[B >: A, That](z: B)(op: (B, B) ? B)(implicit cbf: CanBuildFrom[Repr, B, That]): That
Aqui, o método de varredura usa a função do operador binário associativo como um parâmetro. Este método retorna a coleção atualizada como resultado. Ele considera a primeira entrada como valor inicial e a segunda entrada como uma função.
Uso
Abaixo está um exemplo de programa mostrando como usar o método de verificação -
Exemplo
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)
}
}
Aqui, passamos 0 como valor inicial para a função de varredura e, em seguida, todos os valores são adicionados. Salve o programa acima emDemo.scala. Os seguintes comandos são usados para compilar e executar este programa.
Comando
\>scalac Demo.scala
\>scala Demo
Resultado
List(0, 1, 3, 6, 10)