提取元组元素

时间:2011-01-27 17:08:41

标签: erlang

给出一个包含一个元组的列表:

[{4,1,144}]

如何提取元组的第一个元素:

element(1,lists:nth(1,L))

您有更简单的解决方案吗?

3 个答案:

答案 0 :(得分:31)

试试这个:

1> A = [{3,1,1444}].
[{3,1,1444}]
2> [{X, _, _}] = A.
[{3,1,1444}]
3> X.
3
4> 

答案 1 :(得分:26)

鉴于你得到了你所陈述的内容,一个包含一个元组的列表就更容易了

element(1, hd(L)).

(像shk建议的模式匹配变体可能更好,取决于上下文。

答案 2 :(得分:4)

如果你想在你的元组中嵌入一些语义,你也可以考虑使用记录语法

-record(x, {y, z}).

1> A = #x{y=b, z=c}.
2> A#x.y.
b

所有记录实际上都是元组,你不必担心该元组中元素的顺序,也不必担心添加/删除元素。