oxb*_*kes 13 scala pattern-matching case-class
我刚刚在Scala actors
包中看到过这个case类:
case class ! [a](ch: Channel[a], msg: a)
Run Code Online (Sandbox Code Playgroud)
在JavaDoc中,它以下列形式描述了用法:
receive {
case Chan1 ! msg1 => ...
case Chan2 ! msg2 => ...
}
Run Code Online (Sandbox Code Playgroud)
为什么不是这样的:
receive {
case !(Chan1, msg1) => ...
case !(Chan2, msg2) => ...
}
Run Code Online (Sandbox Code Playgroud)
是砰的操作员!与以冒号结尾的方法类似的特殊情况:
Dan*_*ral 35
在进行模式匹配时,Scala编译器会将其解释o1 c1 o2
为c1(o1, o2)
.这就是为什么::
在模式匹配中工作的原因.