2017-07-11 6 views
0

に一致する場合には、他の変数を使用して、現在私が持っている:SCALA -

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

私はこのような場合に条件として別の変数を使用したい:

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

を試みたが、didnの」 t仕事:

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

これは何か可能ですか?おかげさまで

+1

あなたの最後の例では、私の作品.. – jsdeveloper

答えて

5

「試したが動作しなかった」と書いたものが実際に動作するはずです。あなたの問題は何だったのか分かりません。 次回は「動作しませんでした」というより実際のエラーメッセージを貼り付けてください。

またタプルにマッチすることができます

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

あなたはほとんどそれを持っていました。

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