less than 1 minute read

리턴 값이 nil인지 검사해서 다른 값을 사용하는 것보단 nil일 때, 사용할 default 값을 인자로 넘길 수 있다면 로직이 깔끔해진다. 인자를 3개 받는 get_in/3을 기대했지만, get_in/2 밖에 없다. 필요하면 만들어 써야 한다.

def get_in(data, path, default) do
  case get_in(data, path) do
    nil   -> default
    other -> other
  end
end

이렇게 한번 감싸거나

get_in(data, path) || default

short-circuit evaluation에 살짝 기대거나. 이 바닥에선 많이 쓰니깐 이렇게 써도 무방하다.

참고 - get_in/3 with default value - elixir-lang-core