我正在使用5.4文档中的分布式编程教程,并遇到了节点名称的问题.
jamess-macbook
由于破折号,我的MacBook默认名称()与Erlang的节点命名方案不相符:
(salt@jamess-macbook)4> {my_process, pepper@jamess-macbook} ! start ** exception error: bad argument in an arithmetic expression in operator -/2 called as pepper@jamess - macbook
我确信有一种简单的方法可以解决这个问题,除了重命名我想运行Erlang的所有机器,但我在文档中看不到它.
有什么建议?
你只需要正确引用原子.'pepper@jamess-macbook'
(使用单引号)是节点的名称.
如果原子不以小写字母开头,或者如果它包含除字母数字字符,下划线(_)或@之外的其他字符,则应将原子括在单引号(')中.- Erlang参考手册
使用短节点名称(-sname
)会产生各种其他后果(与长节点名称节点的互操作性有限,不会将dns信息加载到inet_db等等).