J'ai essayé la recherche de Google et n'ai pas pu trouver un exemple décent forall
. Qu'est ce que ça fait? Pourquoi faut-il une fonction booléenne?
Veuillez m'indiquer une référence (sauf le Scaladoc).
La méthode forall
prend une fonction p
qui renvoie un booléen. La sémantique de forall
dit: return true
si pour chaque x
de la collection, p(x)
est vrai.
Alors:
List(1,2,3).forall(x => x < 3)
signifie: true
si 1, 2 et 3 sont inférieurs à 3, false
sinon. Dans ce cas, il sera évalué à false
car ce n'est pas le cas, tous les éléments sont inférieurs à 3: 3 n'est pas inférieur à 3.
Il existe une méthode similaire exists
qui renvoie true
s'il existe au moins un élément x
dans la collection, de sorte que p(x)
est vrai.
Alors:
List(1,2,3).exists(x => x < 3)
signifie: true
si au moins un de 1, 2 et 3 est inférieur à 3, false
sinon. Dans ce cas, il sera évalué à true
puisqu'il s'agit du cas où un élément est inférieur à 3: par ex. 1 est inférieur à 3.
Un exemple rapide de la façon dont vous pouvez jouer avec cette fonction en utilisant un script Scala
.
créer un fichier myScript.scala
avec
println(args.forall(p => (p.equals("a"))))
et appelez avec
scala myScript.scala a a a // true
scala myScript.scala a b c // false
La variable forall
de Scala est également un excellent outil pour appliquer une action similaire à l'application de et logiques à une liste de valeurs booléennes avec le early exist :
val evalResults: List[Boolean] = List(evaluateFunc1(), evaluateFunc2(), evaluateFunc3(), evaluateFunc4(), evaluateFunc5())
evalResults.forall(result => result == true)