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)
							 |