这按预期工作
scala> 3 匹配 { case x:Int => 2*x } res1: 整数 = 6
为什么会失败?
scala> 3 匹配 { case $x:Int => 2*$x } :1: 错误: '=>' 预期但 ':' 找到。 3 匹配 { case $x:Int => 2*$x } ^ scala> 3 匹配 { case `$x`:Int => 2*$x } :1: 错误: '=>' 预期但 ':' 找到。 3 匹配 { case `$x`:Int => 2*$x } ^ scala> 3 匹配 { case `$x` : Int => 2*$x } :1: 错误: '=>' 预期但 ':' 找到。 3 匹配 { case `$x` : Int => 2*$x }
'$' 应该是一个有效的标识符字符,如下所示:
scala> var y = 1 y: 整数 = 1 scala> var $y = 2 $y: 整数 = 2
谢谢