Elixir:
Att använda associativa arrayer
Hur man gör:
Att skapa en Map är enkelt. Du använder %{}
-syntaxen, så här:
my_map = %{"name" => "Alex", "age" => 32}
IO.inspect(my_map)
Att komma åt värden görs genom att använda nycklarna:
IO.puts my_map["name"]
Utskrift: Alex
För att lägga till eller uppdatera värden kan du använda funktionen Map.put/3
:
updated_map = Map.put(my_map, "location", "NY")
IO.inspect(updated_map)
Utskrift: %{"age" => 32, "location" => "NY", "name" => "Alex"}
Att ta bort nycklar är lika enkelt med Map.delete/2
:
trimmed_map = Map.delete(updated_map, "age")
IO.inspect(trimmed_map)
Utskrift: %{"location" => "NY", "name" => "Alex"}
Fördjupning
Maps i Elixir är en evolution av de äldre nyckel-värde-lagrings typerna, som Hashes i Ruby eller Dictionaries i Python. De möjliggör effektivare sökningar och insättningar, vilket gör dem till ett självklart val för modern Elixir-programmering. Det är värt att notera att före Maps använde Elixir HashDict och Dict-moduler, vilka är föråldrade nu.
Dock, för scenarier som kräver ordnade data, kan du titta på nyckelordlistor i Elixir. Dessa är listor av tupler, effektiva för mindre samlingar men inte lika prestandavänliga för stora datamängder som Maps.
Ha i åtanke att Maps lagrar sina nycklar i en “platt” struktur, vilket gör direkt tillgång till nästlade värden lite knepigt. För djup nästling kan du överväga strukturerad åtkomst via funktionerna get_in
, put_in
, update_in
, och get_and_update_in
, vilka tillåter en mer dynamisk ansats till manipulation av nästlade data.
Sammanfattningsvis, medan Maps är ditt självklara val för behov av associativa arrayer i Elixir, erbjuder språket en rik variation av datastrukturer för varje scenario, vilket uppmuntrar dig att välja det rätta verktyget för jobbet.