Como é este jogo classe padrão caso trabalhando?
-
21-08-2019 - |
Pergunta
Eu vi esse caso classe no pacote actors
Scala:
case class ! [a](ch: Channel[a], msg: a)
E no JavaDoc descreve o uso da seguinte forma:
receive {
case Chan1 ! msg1 => ...
case Chan2 ! msg2 => ...
}
Porque é que este não:
receive {
case !(Chan1, msg1) => ...
case !(Chan2, msg2) => ...
}
é o operador estrondo! um caso especial de uma forma semelhante aos métodos que terminam em dois pontos:
Solução
Ao fazer a correspondência de padrão, o compilador Scala irá interpretar o1 c1 o2
o mesmo que c1(o1, o2)
. É por isso que ::
trabalha dentro padrão corresponde também.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow