According to the Elixir documentation, an Atom is a constant whose value is own name. To some Ruby developers like me, an :atom
is like a :symbol.
In Elixir, it is common to use atoms on lists, tuples, and maps:
defmodule Example do
def example_params do
# tupla
tuple = {:ok, "This is a tuple"}
# list
list = [:slug, :title]
# map
map = %{
name: "Diego",
age: 35,
country: "Brazil"
}
end
end
A curiosity in Elixir is that the boolean true
and false
also is :atoms:
iex> true == :true
> true
iex> false == :false
> false
iex> is_atom(false)
> true
iex> is_boolean(:false)
> true
In Elixir, we usually use atoms as a reference status for a given request:
defmodule ExampleController do
#...
def delete_person(conn, %{"id" => id}) do
person = Person.get_person!(id)
{:ok, _person} = Person.Repo.delete(person)
conn
|> put_flash(:info, "Person deleted successfully.")
|> redirect(to: person_path(conn, :index))
end
end
In the example above, the atom :ok
indicates that the delete request was executed successfully. And then a "flash message" was triggered with status :info
indicating that "the person was deleted successfully" and, after, redirected to :index
.
I hope that this content helps and makes sense to you!
Contacts
Email: contato@diegonovais.com.br
LinkedIn: https://www.linkedin.com/in/diegonovais/
Github: https://github.com/dnovais
Twitter: https://twitter.com/diegonovaistech
Top comments (0)