Elixir의 원자는 무엇입니까?

Elixir documentation 에 따르면 Atom은 값이 자신의 이름인 상수입니다. 나와 같은 일부 Ruby 개발자에게 :atom는 :symbol과 같습니다.

Elixir에서는 리스트, 튜플, 맵에 원자를 사용하는 것이 일반적입니다.

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


Elixir의 흥미로운 점은 부울truefalse도 :atoms:라는 것입니다.

iex> true == :true
> true

iex> false == :false
> false

iex> is_atom(false)
> true

iex> is_boolean(:false)
> true



Elixir에서는 일반적으로 주어진 요청에 대한 참조 상태로 원자를 사용합니다.

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


위의 예에서 원자:ok는 삭제 요청이 성공적으로 실행되었음을 나타냅니다. 그런 다음 "사람이 성공적으로 삭제되었습니다"를 나타내는 상태:info와 함께 "플래시 메시지"가 트리거된 후 :index로 리디렉션되었습니다.

이 콘텐츠가 도움이 되고 의미가 있기를 바랍니다.

콘택트 렌즈
이메일: [email protected]
링크드인:
Github: https://github.com/dnovais
트위터:

좋은 웹페이지 즐겨찾기