Wie ist dieser Fall Klasse Einstimmungsmuster zu arbeiten?
-
21-08-2019 - |
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:
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