Boolesche Rückgabe mit If-Else in Scala
Dieser Artikel wird uns beibringen, wie man boolesche Werte zurückgibt, wenn man mit if-else
in Scala arbeitet.
Boolesche Rückgabe mit if-else
in Scala
Sehen wir uns ein Szenario an, um es besser zu verstehen.
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))
Im obigen Code versuchen wir herauszufinden, ob unser Set diese drei Ziffern enthält, also erwarten wir entweder true
oder false
als Ausgabe, aber wenn der obige Code ausgeführt wird, erhalten wir den folgenden Fehler.
type mismatch;
found : Unit
required: Boolean
for ((digit1,digit2,digit3) <- digitsSet){
Das Problem ist, dass die Funktion Boolean statt Unit
zurückgeben soll.
Wir können dieses Problem also auf unterschiedliche Weise lösen.
-
Verwendung der
contains
-Methode, um ein Element in unserer Menge zu finden. Es gibttrue
zurück, wenn das Element vorhanden ist; sonst gibtfalse
zurück.Dies ist eine elegantere Art, den obigen Code zu schreiben.
Beispielcode:
val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.contains((10,20,30)))
Ausgabe:
true
-
Hinzufügen einer
return
-Anweisung vortrue
undfalse
. Dies ist der beste Weg, da er vielseitig ist und in fast jedem Szenario verwendet werden kann.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())
Ausgabe:
true
-
Verwenden der
exists
-Methode in Scala.val digitsSet = Set((10,20,30),(1,5,6),(78,109,23),(14,25,57)) println(digitsSet.exists( _ == (1,20,50) ))
Ausgabe:
false