2012-07-17 37 views
5

Tuple deseniyle eşleştirmek istiyorum, ancak karşılaştırma operatörlerini kullanarak nasıl eşleştirileceğine dair bir çözüm bulamıyorum. Benim kodum:Karşılaştırma operatörü kullanarak tuple ile eşleşme

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

Bu, derleme zamanı hatası verir. Ben de bekçi eğer kullanmaya çalıştı ama gördüğünüz gibi bu şekilde uygulanamaz:

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

benim yaklaşım doğru mu veya bir başka yolda çözmek gerekir? aşağıdaki gibi Teşekkür Zoltan

cevap

9

sözdizimi yanlış, sen bekçi kullanmalısınız:

web üzerinde eşleştirme scala desenine iyi giriş bir yeri vardır
myTuple match {  
    case (-1,-1,true) => ... 
    case (x,-1,_) if x >= 0 => ... 
    case _ => ... // default 
} 

. İşte ilk ayrıntılı olan, google bulundu: Playing with Scala's pattern matching

İlgili konular