使用比较运算符匹配元组

时间:2012-07-17 13:11:36

标签: scala pattern-matching

我想匹配元组模式,但我找不到任何解决方法如何匹配使用比较运算符。我的代码是:

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

这给出了编译时错误。 我也尝试使用if guard,但是我认为它不能以这种方式应用:

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

我的方法是正确的还是我应该以不同的方式解决这个问题? 谢谢 佐尔坦

1 个答案:

答案 0 :(得分:9)

语法错误,你应该使用如下守护:

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

对网络上的scala模式匹配有很多很好的介绍。这是我在google上发现的第一个详细内容:Playing with Scala's pattern matching