缺點單元格
Elixir 中的列表是連結串列。這意味著列表中的每個專案都包含一個值,後跟指向列表中下一個專案的指標。這是使用 cons 單元在 Elixir 中實現的。
缺陷單元是具有左和右值的簡單資料結構,或頭和尾。
可以在列表中的最後一項之前新增|
符號,以標記具有給定頭部和尾部的(不正確的)列表。以下是單個 cons 單元格,其中 1
為頭部,2
為尾部:
[1 | 2]
列表的標準 Elixir 語法實際上等同於編寫一組巢狀的 cons 單元格:
[1, 2, 3, 4] = [1 | [2 | [3 | [4 | []]]]]
空列表 []
用作 cons 單元的尾部以表示列表的結尾。
Elixir 中的所有列表都相當於 [head | tail]
的形式,其中 head
是列表中的第一項,tail
是列表的其餘部分,減去頭部。
iex> [head | tail] = [1, 2, 3, 4]
[1, 2, 3, 4]
iex> head
1
iex> tail
[2, 3, 4]
使用 [head | tail]
表示法對遞迴函式中的模式匹配很有用:
def sum([]), do: 0
def sum([head | tail]) do
head + sum(tail)
end