Elixir Language
Kaarten en zoekwoordenlijsten
Zoeken…
Syntaxis
- map =% {} // maakt een lege kaart
- map =% {: a => 1,: b => 2} // maakt een niet-lege kaart
- list = [] // maakt een lege lijst
- list = [{: a, 1}, {: b, 2}] // maakt een niet-lege lijst met zoekwoorden
Opmerkingen
Elixir biedt twee associatieve gegevensstructuren: kaarten en trefwoordenlijsten .
Kaarten zijn van het Elixer-sleutel / waarde-type (ook wel woordenboek of hash in andere talen genoemd).
Zoekwoordenlijsten zijn tupels van sleutel / waarde die een waarde aan een bepaalde sleutel koppelen. Ze worden meestal gebruikt als opties voor een functieaanroep.
Een kaart maken
Kaarten zijn van het Elixer-sleutel / waarde-type (ook wel woordenboek of hash in andere talen genoemd). U maakt een kaart met de syntaxis %w{}
:
%{} // creates an empty map
%{:a => 1, :b => 2} // creates a non-empty map
Sleutels en waarden kunnen van elk type zijn:
%{"a" => 1, "b" => 2}
%{1 => "a", 2 => "b"}
Bovendien kunt u kaarten met gemengde types hebben voor zowel sleutels als waarden ":
// keys are integer or strings
%{1 => "a", "b" => :foo}
// values are string or nil
%{1 => "a", 2 => nil}
Wanneer alle toetsen op een kaart atomen zijn, kunt u de trefwoordensyntaxis gebruiken voor het gemak:
%{a: 1, b: 2}
Een trefwoordenlijst maken
Zoekwoordenlijsten zijn tupels van sleutel / waarde, meestal gebruikt als opties voor een functieaanroep.
[{:a, 1}, {:b, 2}] // creates a non-empty keyword list
Zoekwoordenlijsten kunnen dezelfde sleutel meer dan eens herhalen.
[{:a, 1}, {:a, 2}, {:b, 2}]
[{:a, 1}, {:b, 2}, {:a, 2}]
Sleutels en waarden kunnen elk type zijn:
[{"a", 1}, {:a, 2}, {2, "b"}]
Verschil tussen kaarten en zoekwoordenlijsten
Kaarten en zoekwoordenlijsten hebben verschillende toepassingen. Een kaart kan bijvoorbeeld niet twee sleutels met dezelfde waarde hebben en is niet geordend. Omgekeerd kan een zoekwoordenlijst in sommige gevallen een beetje moeilijk te gebruiken zijn bij het matchen van patronen.
Hier zijn een paar use cases voor kaarten versus zoekwoordenlijsten.
Gebruik zoekwoordenlijsten wanneer:
- u moet de elementen bestellen
- u hebt meer dan één element met dezelfde sleutel nodig
Gebruik kaarten wanneer:
- u wilt patroon matchen met enkele sleutels / waarden
- u hebt niet meer dan één element met dezelfde sleutel nodig
- wanneer u niet expliciet een zoekwoordenlijst nodig heeft