2011-07-24 11 views

答えて

37

あなたは、単一のmatch文で複数の条件を処理したい場合、あなたはまた、あなたが場合の追加条件を指定することができガード使用することができますいくつかを有しているとは思わなかった、

foo match {  
    case 1 if x > y && z => doSomething() 
    case 1 if x > y => doSomethingElse() 
    case 1 => doSomethingElseEntirely() 
    case 2 => ... 
} 
+0

ああをケース1のそれは動作します。 –

+5

これはOPが書いたものと実際には一致しません。制御フローは異なります。 'x> y && z'では、OPは' doSomething() '、' return doSomethingElseEntirely() 'を実行し、あなたは' doSomething() 'だけを返します。 –

+0

@Rex - 良い点、ありがとう。私はOPのコードにいくつかの開閉中括弧がないので、それを手に入れませんでした。とにかく、それに応じて身体を固定するのは簡単なはずです。 –

関連する問題