Elixir中的连接阵列
答
您可以连接具有++/2功能列表(不阵列)。
但是往往在函数式编程,你将建立使用利弊,像这样(|
)运算符的列表:
a = [] # []
b = ["foo" | a] # ["foo"] ["foo" | []]
c = ["bar" | b] # ["bar", "foo"] ["bar" | ["foo" | []]]
这相当于:
a = [] # []
b = ["foo" | a] # ["foo" | []]
c = ["bar" | b] # ["bar" | ["foo" | []]]
你可能已经看到了这个操作符在模式匹配中:
["bar" | tail] = ["bar", "foo"] #tail is now ["foo"]
你会经常看到列表bu使用这种技术,然后在函数调用结束时颠倒过来,以与使用列表级联相同的顺序获得结果(例如Enum.filter/2)。这个答案解释得很好Erlang: Can this be done without lists:reverse?
您可以在http://elixir-lang.org/getting-started/basic-types.html#lists-or-tuples
答
进行连结,有++
操作。
所以对于例如
iex> [1, 2] ++ [3, 4]
[1, 2, 3, 4]
+4
阅读更多关于列表的数据类型。另外,您也可以删除列表中的部分具有'--''[1,2,3,4,5 ] - [3,4,5]'产生'[1,2]'。 –
好的一点是要确保问这个问题的人意识到他(不定代名词意义)正在处理列表而不是数组。 –
在写这个问题的时候,我不明白这一点,但显然现在我知道了。因为它是Elixir的一个基本组成部分,所以其他人必然要和我一样提出同样的问题。这个答案解决了这个问题,并且它并不是真正被问到的数组。 – steakunderscore