Pid = self(-6ren">
gpt4 book ai didi

erlang - 在erlang中通过变量和 "direct"传递的消息

转载 作者:行者123 更新时间:2023-12-02 06:30:42 25 4
gpt4 key购买 nike

我读了 O'Reilly 的《A Concurrent Approach to Software Development》一书
在第 93 页,有几个“消息传递”的例子。

1> Pid = self().
<0.30.0>
2> Pid ! hello.
hello
3> <0.30.0> ! hello.
* 1: syntax error before: '<'

问题是我不明白为什么会出现语法错误,因为当我输入 1> Pid. 时我得到结果 <0.30.0> ,那么第 2 行和第 3 行之间有什么区别(预计它是一个变量)?

最佳答案

Erlang 中没有文字进程 ID 的语法。这样做的原因是它几乎从来没有意义:每次程序运行时,您最想访问的进程很可能有不同的 pid。

通常您会生成一个进程,将 spawn 的返回值保存在一个变量中,然后使用该变量与进程交互。

如果你真的想从它的字符串表示中得到一个可用的 pid,你可以使用函数 list_to_pid,或者 pid 从打印的组件中得到一个 pid:

list_to_pid("<0.30.0>")
pid(0,30,0)

关于erlang - 在erlang中通过变量和 "direct"传递的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38131361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com