Atoms

As constantes do elixir

Atoms são constantes onde seu valor é o próprio nome. Sua definição vem com um prefixo de dois pontos : seguido de um nome. Exemplo :apple.

Um ato é igual a outro atom com mesmo nome.

test/atom_test.exs
defmodule AtomTest do
  use ExUnit.Case

  test "simple tests about atom" do
    apple = :apple

    assert apple == :apple
    assert :new_atom == :new_atom
  end
end

Rodando esse código teremos um relatório de sucesso.

mix test 
....
Finished in 0.02 seconds (0.00s async, 0.02s sync)
1 tests, 0 failures

Atoms podem ser definidos dinamicamente, para isso poder fazer de duas formas:

  1. Utilizando interpolação

  2. Utilizando conversão

1. Interpolação

2. Conversão

Atenção

Temos algumas formas de evitar esse tipo de problema. Uma forma é a utilização do String.to_existing_atom/1 onde, um atom so será gerado, caso já tenha sido criado antes. Com isso podemos limitar o que pode e o que não pode ser criado.

E caso ele já tenha sido criado, não teremos problemas

Conclusão

Atoms são muito utilizados no mundo elixir, são práticos e fáceis de usar. Vimos que precisamos tomar cuidado com a geração dinâmica e que podemos controlar o que pode ser criado. Mais a frente utilizaremos cada vez mais atoms para simplificar nosso código e estrutura-lo.

Last updated

Was this helpful?