Retour booléen avec If-Else en Scala
Cet article nous apprendra comment renvoyer des valeurs booléennes lorsque vous travaillez avec if-else
dans Scala.
Retour Booléen Avec if-else
en Scala
Voyons un scénario pour mieux le comprendre.
def check(): Boolean = {
for ((digit1,digit2,digit3) <- digitsSet){
if ((1,5,6) == (digit1,digit2,digit3))
true
else
false
}
}
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
Dans le code ci-dessus, nous essayons de trouver si notre ensemble contient ces trois chiffres, nous attendons donc soit true
soit false
comme sortie, mais lorsque le code ci-dessus est exécuté, nous obtenons l’erreur suivante.
type mismatch;
found : Unit
required: Boolean
for ((digit1,digit2,digit3) <- digitsSet){
Le problème est que la fonction doit renvoyer un Booléen au lieu de Unité
.
Nous pouvons donc résoudre ce problème de différentes manières.
-
Utiliser la méthode
contains
pour trouver un élément dans notre ensemble. Elle renvoietrue
si l’élément est présent ; sinon renvoiefalse
.C’est une manière plus élégante d’écrire le code ci-dessus.
Exemple de code :
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.contains((10,20,30)))
Production:
true
-
Ajout d’une instruction
return
avanttrue
etfalse
. C’est le meilleur moyen car il est polyvalent et peut être utilisé dans presque tous les scénarios.val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) def check(): Boolean = { val store = for ((digit1,digit2,digit3) <- digitsSet) { if ((10,20,30) == (digit1,digit2,digit3)) return true } false } println(check())
Production:
true
-
Utilisation de la méthode
exists
dans Scala.val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.exists( _ == (1,20,50) ))
Production:
false