Я только что видел этот класс дел в пакете Scala actors
:
case class ! [a](ch: Channel[a], msg: a)
А в JavaDoc он описывает использование в следующей форме:
receive {
case Chan1 ! msg1 => ...
case Chan2 ! msg2 => ...
}
Почему это не так:
receive {
case !(Chan1, msg1) => ...
case !(Chan2, msg2) => ...
}
Является ли оператор взрыва! особый случай, аналогичный методам, оканчивающимся на двоеточие: