O método fold () é um membro do traço TraversableOnce, é usado para recolher elementos de coleções.
Sintaxe
A seguir está a sintaxe do método fold.
def fold[A1 >: A](z: A1)(op: (A1, A1) ? A1): A1
Aqui, o método fold leva a função do operador binário associativo como parâmetro. Este método retorna o resultado como valor. Ele considera a primeira entrada como valor inicial e a segunda entrada como uma função (que leva o valor acumulado e o item atual como entrada).
Uso
Abaixo está um exemplo de programa mostrando como usar o método de dobra -
Exemplo
object Demo {
def main(args: Array[String]) = {
val list = List(1, 2, 3 ,4)
//apply operation to get sum of all elements of the list
val result = list.fold(0)(_ + _)
//print result
println(result)
}
}
Aqui, passamos 0 como valor inicial para a função de dobra 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
10