2012-07-17 46 views
5

Tôi muốn khớp với mẫu tuple, nhưng tôi không thể tìm thấy giải pháp nào phù hợp với toán tử so sánh. Mã của tôi là:Kết hợp trên tuple sử dụng toán tử so sánh

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

Điều này cung cấp cho lỗi thời gian biên dịch. Tôi cũng đã cố gắng để sử dụng nếu cảnh giác, nhưng khi tôi nhìn thấy nó không thể áp dụng cách này:

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

Là cách tiếp cận của tôi đúng hay tôi nên giải quyết việc này trên một cách khác nhau? Cảm ơn Zoltan

Trả lời

9

Cú pháp là sai, bạn nên sử dụng bảo vệ như sau:

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

Có rất nhiều giới thiệu tốt để mô hình scala phù hợp trên web. Đây là chi tiết đầu tiên tôi đã tìm thấy trên google: Playing with Scala's pattern matching

Các vấn đề liên quan