less than 1 minute read

timeout = opts[:timeout] || 10_000

Programming Phoenix 1.4 책에서 본 소스 코드다. 잠깐 Map이 아니라 Keyword인데 저렇게 쓸 수 있었단 말이야? 몰라서 Keyword.get/3 함수를 사용했다.

iex> keywords = [a: 1, b: 2, a: 3]
[a: 1, b: 2, a: 3]
iex> keywords[:a]
1

keyword lists도 대괄호 접근(square-brackets access) 구문을 사용할 수 있다. key로 찾은 첫 번째 value를 리턴한다.

iex> Keyword.get_values([a: 1, b: 2, a: 3], :a)
[1, 3]

해당 key의 value를 모두 가져오려면 Keyword.get_values/2 함수를 사용한다.