4

我有一个缓慢的早晨。我认为在 case 语句中引用现有的 val 是可以的。但似乎它被解释为局部变量定义。一个基本的谷歌搜索没有帮助,我没有我的楼梯书。

在下文中,允许我匹配大小写 (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
4

1 回答 1

11

您要么必须将vals 大写,要么必须将标识符放入反引号中,如下所示:

  case (`b`, `c`) => 200
于 2010-09-03T00:29:26.813 回答