¿Cómo funciona este caso perfil de compatibilidad de clase?
-
21-08-2019 - |
Pregunta
acabo de ver esta clase en el caso Scala actors
paquete:
case class ! [a](ch: Channel[a], msg: a)
Y en el JavaDoc se describe el uso de la siguiente forma:
receive {
case Chan1 ! msg1 => ...
case Chan2 ! msg2 => ...
}
¿Por qué es esto no:
receive {
case !(Chan1, msg1) => ...
case !(Chan2, msg2) => ...
}
es el operador de explosión! un caso especial de una manera similar a los métodos que terminan en dos puntos:
Solución
Cuando se realiza la coincidencia de patrones, el compilador Scala interpretará o1 c1 o2
lo mismo que c1(o1, o2)
. Es por eso que trabaja dentro ::
patrón coincide también.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow