在elixir中连接元组

Use*_*159 9 elixir

在elixir中,我们可以连接,列表就像这样

 ex(52)> [1,2,3,4] ++ [5,6,7]
 [1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)

我们还可以连接元组吗?像这样的东西?

iex(53)> {1,2,3,4} ++ {5,6,7}
 ** (ArgumentError) argument error
    :erlang.++({1, 2, 3, 4}, {5, 6, 7})
Run Code Online (Sandbox Code Playgroud)

我能想到的唯一另一件事是将元组转换为列表,然后使用to_listto_tuple函数转换回元组.但那太笨拙了.

Jos*_*lim 24

你不能连接元组.

唯一的原因是你不应该这样使用它们.大多数元组的使用需要知道它们的大小,如果你可以连接它们,事情会变得模糊.此外,连接元组需要在内存中复制两个元组,这是无效的.

换句话说,如果要连接元组,则可能是错误的数据结构.您有两种选择:

  1. 使用列表
  2. 编写元组:而不是a ++ b,只写{a, b}

  • 当语言设计师回答问题时,我喜欢.再也不能得到官方了. (5认同)