2017-07-11 4 views
0

Derzeit habe ich:SCALA - mit anderen Variablen, falls passend

val bar = "good" 
val foo = bar match { 
      case "good" => "GREAT" 
      case _ => "BAD" 
      } 

Ich möchte eine andere Variable als Bedingung wie dies in Fall verwenden:

val x = 5 
val bar = "good" 
val foo = bar match { 
     case "good" and x = 5 => "GREAT" 
     case _ => "BAD" 
     } 

versucht, aber didn‘ t Arbeit:

val x = 5 
val bar = "good" 
val foo = bar match { 
     case y if (y == "good" && x == 5) => "GREAT" 
     case _ => "BAD" 
     } 

Ist so etwas möglich? Danke.

+1

Ihr letztes Beispiel funktioniert für mich .. – jsdeveloper

Antwort

5

Was Sie als "versucht, aber nicht funktioniert" geschrieben haben, sollte eigentlich funktionieren. Nicht sicher, was dein Problem war. Beim nächsten Mal fügen Sie bitte eine tatsächliche Fehlermeldung ein, anstatt nur zu sagen: "Es hat nicht funktioniert".

Sie können auch gegen einen Tupel entsprechen:

val x = 5 
val bar = "good" 
val foo = (bar, x) match { 
    case ("good", 5) => "GREAT" 
    case _ => "BAD" 
} 
3

Sie hatten es fast.

val foo = bar match { 
    case "good" if x == 5 => "GREAT" 
    case _ => "BAD" 
}