Elixir Language
Kartor och sökordslistor
Sök…
Syntax
- map =% {} // skapar en tom karta
- karta =% {: a => 1,: b => 2} // skapar en icke tom karta
- list = [] // skapar en tom lista
- list = [{: a, 1}, {: b, 2}] // skapar en icke-tom sökordslista
Anmärkningar
Elixir tillhandahåller två associativa datastrukturer: kartor och nyckelordslistor .
Kartor är Elixir-nyckelvärdet (även kallad ordbok eller hash på andra språk).
Nyckelordslistor är delar av nyckel / värde som kopplar ett värde till en viss nyckel. De används vanligtvis som alternativ för ett funktionssamtal.
Skapa en karta
Kartor är Elixir-nyckelvärdet (även kallad ordbok eller hash på andra språk). Du skapar en karta med %w{}
syntax:
%{} // creates an empty map
%{:a => 1, :b => 2} // creates a non-empty map
Nycklar och värden kan användas av alla typer:
%{"a" => 1, "b" => 2}
%{1 => "a", 2 => "b"}
Dessutom kan du ha kartor med blandade typer för både nycklar och värden ":
// keys are integer or strings
%{1 => "a", "b" => :foo}
// values are string or nil
%{1 => "a", 2 => nil}
När alla nycklar på en karta är atomer kan du använda nyckelordssyntaxen för bekvämlighet:
%{a: 1, b: 2}
Skapa en sökordslista
Nyckelordslistor är nycklar / värde, som vanligtvis används som alternativ för ett funktionssamtal.
[{:a, 1}, {:b, 2}] // creates a non-empty keyword list
Nyckelordslistor kan ha samma nyckel som upprepas mer än en gång.
[{:a, 1}, {:a, 2}, {:b, 2}]
[{:a, 1}, {:b, 2}, {:a, 2}]
Nycklar och värden kan vara av alla slag:
[{"a", 1}, {:a, 2}, {2, "b"}]
Skillnad mellan kartor och sökordslistor
Kartor och nyckelordslistor har olika tillämpningar. Till exempel kan en karta inte ha två nycklar med samma värde och den är inte beställd. Omvänt kan en nyckelordslista vara lite svår att använda i mönstermatchning i vissa fall.
Här är några användningsfall för kartor kontra nyckelordslistor.
Använd sökordslistor när:
- du behöver elementen som ska beställas
- du behöver mer än ett element med samma nyckel
Använd kartor när:
- du vill mönster-matcha mot vissa tangenter / värden
- du behöver inte mer än ett element med samma nyckel
- när du inte uttryckligen behöver en sökordslista