5

タプルパターンで照合したいのですが、比較演算子を使用して照合する方法が見つかりません。私のコードは次のとおりです。

myTuple  match {       
      case (-1,-1,true) => ...       
      case (_>=0,-1,_) =>  ...
    }

これにより、コンパイル時エラーが発生します。私もifガードを使おうとしましたが、私が見るように、この方法では適用できません。

 case (_ if _>=0,-1,_) =>  ...

私のアプローチは正しいですか、それとも別の方法でこれを解決する必要がありますか?ありがとうゾルタン

4

1 に答える 1

9

構文が間違っているため、次のようにガードを使用する必要があります。

myTuple  match {       
  case (-1,-1,true) => ...
  case (x,-1,_) if x >= 0 =>  ...
  case _ => ... // default
}

Web上にはscalaパターンマッチングの良い紹介がたくさんあります。これが私がグーグルで見つけた最初の詳細なものです:Scalaのパターンマッチングで遊ぶ

于 2012-07-17T13:15:55.020 に答える