Elixir 代码示例 3: 列表

列表过滤

iex(36)> Enum.filter(["person.name", "person.email", "person.tel", "bot.name"], fn(x) -> 
...(36)>   String.starts_with?(x, "person")
...(36)> end)
["person.name", "person.email", "person.tel"]

其中, Enum.filter的第二个参数为一个函数, 该函数返回true, 对应的元素被保留, 返回false对应的元素被从结果列表中过滤掉.

连接列表

合并两个列表中的所有元素

iex(42)> [1]++[2]
[1, 2]

列表的长度

iex(43)> :erlang.length([1, 2, 3])  
3

列表推导

iex(44)> for n <- [1, 2, 3], do: n + n
[2, 4, 6]

相关文档: Comprehensions

在列表最前面添加

iex(45)> [1 | [2, 3, 4]]
[1, 2, 3, 4]

获取列表的第一个元素

# 以函数调用的方式
iex(48)> hd([1, 2, 3, 4])
1

# 以模式匹配的方式
iex(49)> [head | tail] = [1, 2, 3, 4]
[1, 2, 3, 4]
iex(50)> head
1
iex(51)> tail
[2, 3, 4]

你可能感兴趣的:(elixir)