cela fonctionne comme prévu
scala> 3 match { case x:Int => 2*x } res1: Int = 6
pourquoi cette échec?
scala> 3 match { case $x:Int => 2*$x } :1: error: '=>' expected but ':' found. 3 match { case $x:Int => 2*$x } ^ scala> 3 match { case `$x`:Int => 2*$x } :1: error: '=>' expected but ':' found. 3 match { case `$x`:Int => 2*$x } ^ scala> 3 match { case `$x` : Int => 2*$x } :1: error: '=>' expected but ':' found. 3 match { case `$x` : Int => 2*$x }
'$' est censé être un caractère identifiant valide, comme l'a démontré ici:
scala> var y = 1 y: Int = 1 scala> var $y = 2 $y: Int = 2
Merci
... pourquoi voudriez-vous? –
J'écris un langage spécifique au domaine pour compiler des scripts PHP en utilisant Scala. –
Je pense que c'est parce que $ est une réserve pour le compilateur. – Eastsun