호두나무 공방/Exercism in Elixir

Resistor Color - Exercism in Elixir

2022. 4. 13. 23:17

문제 보기

저항의 색을 나타내는 아톰이 주어졌을 때, 색에 맞는 숫자 값을 반환하는 문제였다. 너무 간단해서 딱히 덧붙일 게 없음...

아, 함수를 나눠서 구현할까(예: def code(:black), do: 0) 하는 고민을 잠깐 했는데, 생각해보니 데이터는 코드에서 분리해서 따로 빼는 것이 맞을 것 같아 지금과 같은 코드가 되었다.

defmodule ResistorColor do
  @register_color %{
    black: 0,
    brown: 1,
    red: 2,
    orange: 3,
    yellow: 4,
    green: 5,
    blue: 6,
    violet: 7,
    grey: 8,
    white: 9
  }

  @doc """
  Return the value of a color band
  """
  @spec code(atom) :: integer()
  def code(color) do
    @register_color[color]
  end
end