42 lines
930 B
Markdown
42 lines
930 B
Markdown
|
---
|
|||
|
title: Lists
|
|||
|
localeTitle: 清单
|
|||
|
---
|
|||
|
## 清单
|
|||
|
|
|||
|
在Elixir中,列表是由方括号内的值组成的数据结构。列表中的值可以是任何类型。
|
|||
|
|
|||
|
```elixir
|
|||
|
iex> [1, "string", true]
|
|||
|
[1, "string", true]
|
|||
|
```
|
|||
|
|
|||
|
## 不变性
|
|||
|
|
|||
|
Elixir中的数据结构是不可变的,因此在List上执行的任何操作都将返回一个新列表,保留原始列表。
|
|||
|
|
|||
|
```elixir
|
|||
|
iex> list = [1, "string", true]
|
|||
|
[1, "string", true]
|
|||
|
iex> list ++ [2]
|
|||
|
[1, "string", true, 2]
|
|||
|
iex> list
|
|||
|
[1, "string", true]
|
|||
|
```
|
|||
|
|
|||
|
## 头和尾
|
|||
|
|
|||
|
可以使用`hd/1`和`tl/1`运算符轻松访问列表的头部(第一个元素)和尾部(剩余值)。
|
|||
|
|
|||
|
```elixir
|
|||
|
iex> list = [1, "string", true]
|
|||
|
iex> hd(list)
|
|||
|
1
|
|||
|
iex> tl(list)
|
|||
|
["string", true]
|
|||
|
```
|
|||
|
|
|||
|
#### 更多信息:
|
|||
|
|
|||
|
* [elixir-lang.org |递归](https://elixir-lang.org/getting-started/basic-types.html#linked-lists)
|
|||
|
* [hexdocs |枚举](https://hexdocs.pm/elixir/List.html)
|