42 lines
1.3 KiB
Markdown
42 lines
1.3 KiB
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 | Enum](https://hexdocs.pm/elixir/List.html) |