Question

Dans les exemples d'acteurs Scala, j'ai vu qu'un message sans paramètre était envoyé à un acteur (tel que this ), les classes de casse (ou les objets de casse ) ont été créés puis utilisés en tant que messages. Les symboles fonctionnent aussi bien et ont l’air un peu plus ordonnés. Après avoir lu un livre sur Erlang, ils semblent plus naturels. Je suppose que l’égalité des symboles fonctionnerait pour les acteurs distants.

Pour les messages avec des paramètres, les classes de cas constitueraient un choix évident. Par conséquent, la cohérence entre les types de message est un problème?

Existe-t-il des raisons d’opter pour l’une ou l’autre approche?

Était-ce utile?

La solution

Je ne pense pas que les Symbol puissent remplacer les classes case . En fait, je ne suis pas tout à fait sûr de ce qu'est l'utilisation de Symbol , vu le manque de puissance des symboles dans d'autres langues (par exemple, Ruby, Smalltalk) - ce n'est qu'une chaîne interne.

Par exemple, dans l'exemple d'enchères standard, il est difficile de voir comment vous représenteriez la complexité d'une enchère / offre en utilisant uniquement des symboles.

En ce qui concerne les majuscules , objets, je pense également qu'ils sont préférables aux symboles. Par exemple, ils peuvent être des instances de trait , etc., et donc fournir des fonctionnalités.

Autres conseils

La réponse courte est la vérification à la compilation.

Même si les symboles peuvent être utilisés comme messages et qu'ils sont encore plus succincts que les objets de cas (inutile de les définir), le compilateur ne peut pas détecter les symboles mal orthographiés et vous aurez du mal à comprendre pourquoi les acteurs ne reçoivent pas messages spécifiques quand ils sont censés le faire.

Si les classes et / ou les objets de la casse sont utilisés comme messages, le compilateur vous dira si vous essayez d'envoyer et / ou de recevoir des messages inexistants avant même que le programme ne soit exécuté.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top