2012-07-17 12 views
5

Vorrei abbinare il modello di tupla, ma non riesco a trovare alcuna soluzione su come abbinare gli operatori di confronto. Il mio codice è:Corrispondenza su tupla utilizzando l'operatore di confronto

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

Questo dà dare compilazione errore di tempo. Ho anche cercato di usare, se la guardia, ma come la vedo io non può essere applicata in questo modo:

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

È il mio approccio corretto o dovrei risolvere questo in un modo diverso? Grazie Zoltan

risposta

9

La sintassi è sbagliata, è necessario utilizzare guardia come segue:

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

Ci sono un sacco di buona introduzione al modello di scala corrispondenti sul web. Ecco la prima dettagliata, che ho trovato su google: Playing with Scala's pattern matching

Problemi correlati