Frage

In der Scala Schauspieler Beispiele, die ich gesehen habe, wo eine parameterlos Nachricht an einen Schauspieler gesendet wird (wie diese ), case classes (oder case objects) erstellt und dann als Nachrichten verwendet wurden. Symbole funktionieren genauso gut und sehen ein bisschen übersichtliche und nach einem Buch über Erlang lesen, scheinen natürlicher. Ich gehe davon aus, dass Symbol Gleichheit für Fern Akteure funktionieren würde.

Für Nachrichten mit Parametern Fallklassen die offensichtliche Wahl, wären so vielleicht Konsistenz zwischen Nachrichtentypen ist ein Problem?

Gibt es Gründe für beide Ansatz gehen?

War es hilfreich?

Lösung

Ich glaube nicht, dass Symbols Ersatz für case Klassen. In der Tat, ich bin nicht ganz sicher, welche Verwendung Symbol überhaupt ist, da es die Kraft der Symbole in anderen Sprachen fehlen (zum Beispiel Ruby Smalltalk.) - es ist nur ein interniert String

Zum Beispiel in dem Standard-Auktion Beispiel, ist es schwierig zu sehen, wie man die Komplexität eines Kauf- / Verkaufsgebot darstellen würde Symbole allein.

Wie bei case Objekte , ich glaube auch, dass diese Symbole zu bevorzugen sind. Zum Beispiel können sie Instanzen von traits usw. sein, und somit Funktionalität liefern.

Andere Tipps

Die kurze Antwort ist kompilieren Zeit zu überprüfen.

dachte Auch Symbole als Nachrichten verwendet werden können, und sie sind noch prägnanter als Fall-Objekte (keine Notwendigkeit, sie zu definieren), Compiler die falsch geschriebenen Symbole nicht erkennen kann, und Sie werden eine harte Zeit herauszufinden haben, warum Akteure nicht erhalten spezifische Nachrichten, wenn sie sollen.

Wenn Fallklassen und / oder Objekte als Nachrichten verwendet werden, Compiler werden Ihnen sagen, wenn Sie versuchen, Nachrichten zu senden und / oder empfangen nicht existent, bevor das Programm noch ausgeführt wird.

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