엘릭서에는지도가 있습니다 :
> map = %{:a => "one", :b => "two"} # = %{a: "one", b: "two"}
> map.a # = "one"
> map[:a] # = "one"
우리는 또한 키워드 목록이 있습니다 :
> kl = [a: "one", b: "two"] # = [a: "one", b: "two"]
> kl2 = [{:a, "one"},{:b, "two"}] # = [a: "one", b: "two"]
> kl == kl2 # = true
> kl[:a] # = "one"
> kl.a # = ** (ArgumentError)
왜 둘 다?
통사론? 키워드 목록은 함수 호출의 마지막 매개 변수로 중괄호 없이도 정의 할 수 있도록 더 유연한 구문을 가지고 있기 때문입니까? 그렇다면지도에이 구문 설탕을주지 않겠습니까?
중복 키? 키워드 목록에 중복 키가있을 수 있기 때문입니까? 지도 스타일 액세스와 중복 키를 모두 원하는 이유는 무엇입니까?
공연? 키워드 목록의 실적이 더 좋기 때문입니까? 그렇다면 왜지도가 있습니까? 그리고 맵은 튜플 목록보다 키로 멤버를 찾는 데 더 효과적이지 않아야합니까?
JS Array와 Ruby Hash 같은 모습? 그게 다야?
나는 구조적으로 서로 다른 데이터 표현임을 이해합니다. 나에게 elixir의 키워드 목록은 예외적 인 구문 (3 개의 다른 구문 변형), 사용 사례가지도와 겹치고 불분명 한 이점을 통해 언어를 복잡하게 만드는 역할을하는 것 같습니다.
키워드 목록을 사용하면 어떤 이점이 있습니까?