Erlang - 编写一个模式,将变量绑定到此元组中的第二个元素{< 0.206.0>,{rect,10,30}}

时间:2010-06-22 23:41:59

标签: erlang tuples

如何编写将变量绑定到第二个的模式 此元组中的元素{< 0.206.0>,{rect,10,30}}?

即。导致的“代替模式的东西” 形状的值为{rect,10,30}。 模式= {< 0.206.0>,{rect,10,30}}

< 0.206.0>令我困惑的部分。

3 个答案:

答案 0 :(得分:8)

这很简单......

{_, Shape} = {<0.206.0>, {rect, 10, 30}}.

但是,你不能从文字中创建一个进程id,所以上面的语法是错误的,但是在REPL中尝试这个......

1> {_, Shape} = {self(), {rect, 10, 30}}.
{<0.31.0>,{rect,10,30}}
2> Shape.
{rect,10,30}

答案 1 :(得分:4)

<0.206.0>看起来像一个PID。无论哪种方式都是一回事,所以不要考虑它。

你可以根据你的情况做一些dsmith的建议,或者你可以这样做:

Shape = element(2, {<0.206.0>, {rect, 10, 30}}).

答案 2 :(得分:3)

仅供您进一步参考,您可以使用pid/0功能“创建”特定的Pid:

1> Pid = pid(0,206,0).
<0.206.0>
2> {Pid, Shape} = {Pid, {rect, 10, 30}}.
{<0.206.0>,{rect,10,30}}