1

我有主管,它使用 spawn_link 产生动态孩子。当我创建新孩子时:

create_my_child().

它返回:

{ok, <0.324.0>}

所以一切都很开心。我尝试从控制台将变量分配给孩子:

{ok,X} = create_my_child()

我收到错误消息:

异常错误:右侧值不匹配

并说:

{主管,do_start_child_i,3

我做了所有困难的工作,可以为子进程做这个吗?

4

1 回答 1

2

如果您在控制台中执行所有这些操作,则 X 已经绑定返回第一个spawn_link调用的 Pid,并且随后尝试{ok, X}create_my_child()调用匹配失败并出现“右手侧不匹配”错误。

在 Erlang 中,变量是不可变的,所以你不能X在它已经有值之后重新赋值。在控制台中,您可以f()清除 shell 的变量,但更简单的解决方案是简单地绑定做一个不同的变量(即X2

于 2012-10-27T16:42:21.660 回答