O método foldLeft () é um membro do traço TraversableOnce, é usado para recolher elementos de coleções. Ele navega pelos elementos da ordem da esquerda para a direita. É usado principalmente em funções recursivas e evita exceções de estouro de pilha.
Sintaxe
A seguir está a sintaxe do método fold.
def foldLeft[B](z: B)(op: (B, A) ? B): B
Aqui, o método foldLeft usa a função de operador binário associativo como parâmetro. Este método retorna o resultado como valor.
Uso
Abaixo está um programa de exemplo mostrando como usar o método foldLeft -
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.foldLeft(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