Boolesche Rückgabe mit If-Else in Scala

Suraj P 21 Juni 2022
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.

  1. Verwendung der contains-Methode, um ein Element in unserer Menge zu finden. Es gibt true zurück, wenn das Element vorhanden ist; sonst gibt false 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
    
  2. Hinzufügen einer return-Anweisung vor true und false. 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
    
  3. 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
    
Autor: Suraj P
Suraj P avatar Suraj P avatar

A technophile and a Big Data developer by passion. Loves developing advance C++ and Java applications in free time works as SME at Chegg where I help students with there doubts and assignments in the field of Computer Science.

LinkedIn GitHub