scala - 用于向 Scala Actors 发送消息的符号或案例类?

标签 scala symbols actor case-class

在 Scala actor 示例中,我看到了将无参数消息发送给 actor(例如 this )、case classes(或 case objects ) 已创建,然后用作消息。符号也可以工作,看起来更整洁,并且在阅读了一本关于 Erlang 的书之后,看起来更自然。我假设符号相等适用于远程参与者。

对于带有参数的消息,案例类将是显而易见的选择,所以消息类型之间的一致性可能是一个问题?

有什么理由选择这两种方法吗?

最佳答案

简短的回答是编译时检查。

即使认为符号可以用作消息并且它们比 case 对象更简洁(无需定义它们),编译器也无法检测到拼写错误的符号,您将很难弄清楚为什么 Actor 没有收到应该发送的特定消息。

如果使用案例类和/或对象作为消息,编译器会在程序执行之前告诉您是否尝试发送和/或接收不存在的消息。

关于scala - 用于向 Scala Actors 发送消息的符号或案例类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1613068/

相关文章:

java - Java错误: Cannot find symbol - but method is in the data type class

scala - 如何保证Actor的响应时间?

java - Akka Java : dead letters encountered

java - 试图在 Java 中初始化 Scala 创建的类

java - 在java中将java映射转换为scala不可变映射

php - 如何在php中转义字符串中的哈希符号

batch-file - 批量版权符号

scala - 值(value) !不是 Actor 的成员

json - Scala/Play : modify Json. 单个字段的格式宏行为

scala - 生成可能的组合