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:

¿Fue útil?

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
scroll top