Retour booléen avec If-Else en Scala
Suraj P
21 juin 2022
Scala
Scala Boolean
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
containspour trouver un élément dans notre ensemble. Elle renvoietruesi 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 :
```scala
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57))
println(digitsSet.contains((10,20,30)))
```
Production:
```text
true
```
-
Ajout d’une instruction
returnavanttrueetfalse. 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:
```text
true
```
-
Utilisation de la méthode
existsdans Scala.val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.exists( _ == (1,20,50) ))Production:
false
Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
