增加Erlang中元组的长度

增加Erlang中元组的长度,erlang,tuples,Erlang,Tuples,如何在Erlang中增加元组的长度?例如,假设Tup={1,2,3},现在我想向其中添加另一个元素。有没有办法做到这一点 元组不应该是一种灵活的数据结构。如果你经常调整大小,那么你应该考虑使用其他类似的,或者-取决于你的期望。这是 但如果您确实需要扩展该元组,则可以使用: 元组是不可变的,所以严格来说,不能增加长度 通常,如果您想要一个数量可变的数据类型,元组将非常不方便。例如,迭代列表的所有元素是非常惯用的,而迭代在编译时大小未知的元组的所有元素则是一种痛苦 然而,一种常见的模式是从某个函数得

如何在Erlang中增加元组的长度?例如,假设
Tup={1,2,3}
,现在我想向其中添加另一个元素。有没有办法做到这一点

元组不应该是一种灵活的数据结构。如果你经常调整大小,那么你应该考虑使用其他类似的,或者-取决于你的期望。这是

但如果您确实需要扩展该元组,则可以使用:


元组是不可变的,所以严格来说,不能增加长度

通常,如果您想要一个数量可变的数据类型,元组将非常不方便。例如,迭代列表的所有元素是非常惯用的,而迭代在编译时大小未知的元组的所有元素则是一种痛苦

然而,一种常见的模式是从某个函数得到一个元组,并返回该元组的元素加上加法

country_coords(Name) ->
    {Lat, Lng} = find_address(Name),
    {_Street, _City, _Zip, Country} = geocode(Lat, Lng),
    {ok, Lat, Lng, Country}.

erlang:append_元素(tuple_,其长度增加,元素增加)。这是内置函数,但tuple和list并不灵活。因此避免使用此函数,除非erlang中没有其他方法

,否则所有数据,包括tuple,都是不可变的,因此不能以任何方式更改tuple。“修改”一个元组意味着用你想要的更改来创建一个新元组,旧元组仍然没有改变。为什么一个月后你改变了主意?我的回答结果是不正确的?看起来像是计划不周的声誉操纵。。。
country_coords(Name) ->
    {Lat, Lng} = find_address(Name),
    {_Street, _City, _Zip, Country} = geocode(Lat, Lng),
    {ok, Lat, Lng, Country}.