我在名为“message_passing”的模块中有一个名为“message/2”的函数,该函数在另一个函数 hash/1 中被调用。我需要 3 个名为 node1、node2 和 node3 的节点,但是当我想在名为“Current_Node”的变量中获取当前节点时,它不起作用。它显示错误。它无法在我的变量中获取当前节点。
** exception error: no true branch found when evaluating an if expression
in function message_passing:hash/1
hash(H)->
Current_Node=node(),
if
Current_Node==node1->
message(node2,H),
message(node3,H);
Current_Node==node2->
message(node1,H),
message(node3,H);
Current_Node==node3->
message(node1,H),
message(node2,H)
end
最佳答案
不确定您是否只是在代码中使用示例,但是 bif node() 不会返回仅包含节点名称的原子,还会返回主机名。
node() = node1@localhost.
这就是您的代码无法按您认为的那样工作的原因。
关于erlang - 如何获取erlang集群中的当前节点名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1672322/