42 lines
1.0 KiB
Markdown
42 lines
1.0 KiB
Markdown
|
---
|
|||
|
title: Lists
|
|||
|
localeTitle: Listas
|
|||
|
---
|
|||
|
## Listas
|
|||
|
|
|||
|
No Elixir, as listas são estruturas de dados compostas de valores entre colchetes. Os valores em uma lista podem ser de qualquer tipo.
|
|||
|
|
|||
|
```elixir
|
|||
|
iex> [1, "string", true]
|
|||
|
[1, "string", true]
|
|||
|
```
|
|||
|
|
|||
|
## Imutabilidade
|
|||
|
|
|||
|
As estruturas de dados no Elixir são imutáveis, portanto, quaisquer operações executadas em uma Lista retornarão uma nova lista, deixando o original intacto.
|
|||
|
|
|||
|
```elixir
|
|||
|
iex> list = [1, "string", true]
|
|||
|
[1, "string", true]
|
|||
|
iex> list ++ [2]
|
|||
|
[1, "string", true, 2]
|
|||
|
iex> list
|
|||
|
[1, "string", true]
|
|||
|
```
|
|||
|
|
|||
|
## Cabeças e caudas
|
|||
|
|
|||
|
A cabeça (primeiro elemento) de uma lista e a cauda (valores restantes) podem ser facilmente acessados com os operadores `hd/1` e `tl/1` .
|
|||
|
|
|||
|
```elixir
|
|||
|
iex> list = [1, "string", true]
|
|||
|
iex> hd(list)
|
|||
|
1
|
|||
|
iex> tl(list)
|
|||
|
["string", true]
|
|||
|
```
|
|||
|
|
|||
|
#### Mais Informações:
|
|||
|
|
|||
|
* [elixir-lang.org | recursão](https://elixir-lang.org/getting-started/basic-types.html#linked-lists)
|
|||
|
* [hexdocs | Enum](https://hexdocs.pm/elixir/List.html)
|