2011-08-26 10 views
69

同じコードを使用してリモートサービスから複数の戻り値を処理したいとしましょう。Scalaで複数の値をパターンマッチングする方法は?

code match { 
    case "1" => // Whatever 
    case "2" => // Same whatever 
    case "3" => // Ah, something different 
} 

は私が抽出メソッドを使用して、それを呼び出すことができます知っているが、繰り返しは、コールにまだあります:私はScalaでこれを表現する方法がわかりません。私はルビーを使用していた場合、私はこのように書くと思います:私は例を単純化し

case code 
when "1", "2" 
    # Whatever 
when "3" 
    # Ah, something different 
end 

注意、したがって、私は、正規表現またはそのようないくつかのパターンが一致したくありません。一致値は実際には複素数値です。

+0

可能重複scala](http://stackoverflow.com/questions/1837754/match-multiple-cases-classes-in-scala) – nawfal

答えて

116

あなたは行うことができます:あなたが名前にパターンの一部をバインドすることはできません

code match { 
    case "1" | "2" => // whatever 
    case "3" => 
} 

注 - あなたは現在、これを行うことはできません。

code match { 
    case Left(x) | Right(x) => 
    case null => 
} 
[マッチ複数のケースクラス内の
関連する問題