13

我刚刚在 Scalaactors包中看到了这个案例类:

case class ! [a](ch: Channel[a], msg: a)

在 JavaDoc 中,它以以下形式描述了用法:

receive {
  case Chan1 ! msg1 => ...
  case Chan2 ! msg2 => ...
}

为什么不是这样:

receive {
  case !(Chan1, msg1) => ...
  case !(Chan2, msg2) => ...
}

是bang算子!与以冒号结尾的方法类似的特殊情况:

4

1 回答 1

36

在进行模式匹配时,Scala 编译器将解释o1 c1 o2c1(o1, o2). 这就是为什么::在模式匹配中也起作用的原因。

于 2009-06-29T16:13:55.230 回答