2010-09-03 8 views
4

Je passe une matinée lente. Je pensais que référencer un val existant dans une déclaration de cas serait OK. Mais il semble qu'il soit interprété comme une définition de variable locale. Un googling rudimentaire n'a pas aidé et je n'ai pas mon livre d'escalier avec moi.Comment référencer un val dans une instruction de cas?

Dans ce qui suit, quelle est la syntaxe qui me permettrait de faire correspondre le cas (b, c)?

scala> val (a,b,c) = (1,2,3) 
a: Int = 1 
b: Int = 2 
c: Int = 3 

scala> (2,3) match { 
    | case (a,b) => 100 
    | case (b,c) => 200 
    | case _ => 999 
    | } 
<console>:8: error: unreachable code 
     case (b,c) => 200 

Répondre

11

Vous devez soit capitaliser les val s ou vous devez mettre les identifiants dans cette contre-apostrophes comme:

case (`b`, `c`) => 200 
+0

Aha! Cela sonne une cloche. – Synesso

Questions connexes