Frage

Ich habe gerade diesen Fall Klasse in dem Scala actors Paket gesehen:

case class ! [a](ch: Channel[a], msg: a)

Und in dem JavaDoc es beschreibt den Einsatz in der folgenden Form:

receive {
  case Chan1 ! msg1 => ...
  case Chan2 ! msg2 => ...
}

Warum ist das nicht:

receive {
  case !(Chan1, msg1) => ...
  case !(Chan2, msg2) => ...
}

Ist der Knall Operator! ein Sonderfall, in ähnlicher Weise wie Methoden in einem Doppelpunkt enden:

War es hilfreich?

Lösung

Wenn Pattern-Matching tun, wird der Scala-Compiler o1 c1 o2 die gleiche wie c1(o1, o2) interpretieren. Deshalb :: arbeitet innerhalb Muster passt auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top