2012-07-17 80 views
5

我想匹配元組模式,但我找不到任何解決方案如何使用比較運算符進行匹配。我的代碼是:使用比較運算符在元組上匹配

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

這給出了編譯時錯誤。 我也試過,如果後衛使用,但在我看來不能適用這種方法:

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

是我的做法正確與否,我應該解決這個問題上的不同呢? 感謝 佐爾坦

回答

9

的語法是錯誤的,應該按如下步驟使用後衛:

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

有很多很好的介紹到網上匹配Scala的模式。這裏是第一個詳細的,我找到谷歌:Playing with Scala's pattern matching