Di elixir kami memiliki Maps:
> map = %{:a => "one", :b => "two"} # = %{a: "one", b: "two"}
> map.a # = "one"
> map[:a] # = "one"
Kami juga memiliki Daftar Kata Kunci:
> 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)
Mengapa keduanya?
Sintaksis? Apakah karena Daftar Kata Kunci memiliki sintaks yang lebih fleksibel yang memungkinkannya untuk ditentukan tanpa tanda kurung dan bahkan tanpa tanda kurung sebagai parameter terakhir dari panggilan fungsi? Lalu mengapa tidak memberi Maps gula sintaksis ini?
Kunci Duplikat? Apakah karena Daftar Kata Kunci dapat memiliki kunci duplikat? Mengapa Anda menginginkan akses gaya Peta dan kunci duplikat?
Performa? Apakah karena Daftar Kata Kunci memiliki kinerja yang lebih baik? Lalu kenapa punya Maps? Dan bukankah peta lebih baik dalam mencari anggota dengan kunci daripada daftar tupel?
Penampilan seperti JS Array dan Ruby Hash? Itu saja?
Saya memahami bahwa secara struktural mereka adalah representasi data yang berbeda. Bagi saya, tampaknya Daftar Kata Kunci di elixir berfungsi untuk memperumit bahasa melalui sintaksis yang luar biasa (3 varian sintaksis yang berbeda), kasus penggunaan yang tumpang tindih dengan peta, dan manfaat yang tidak jelas.
Apa keuntungan menggunakan Daftar Kata Kunci?