Elixir:
Korzystanie z tablic asocjacyjnych
Jak to zrobić:
Utworzenie Mapy jest proste. Używasz składni %{}
, tak jak tutaj:
my_map = %{"name" => "Alex", "age" => 32}
IO.inspect(my_map)
Dostęp do wartości uzyskuje się, używając kluczy:
IO.puts my_map["name"]
Wyjście: Alex
Aby dodać lub zaktualizować wartości, można użyć funkcji Map.put/3
:
updated_map = Map.put(my_map, "location", "NY")
IO.inspect(updated_map)
Wyjście: %{"age" => 32, "location" => "NY", "name" => "Alex"}
Usuwanie kluczy jest równie proste dzięki Map.delete/2
:
trimmed_map = Map.delete(updated_map, "age")
IO.inspect(trimmed_map)
Wyjście: %{"location" => "NY", "name" => "Alex"}
Pogłębiona analiza
Mapy w Elixirze są ewolucją starszych typów przechowywania klucz-wartość, takich jak Hashe w Ruby czy Słowniki w Pythonie. Pozwalają na bardziej efekcyjne wyszukiwanie i wstawianie, czyniąc je głównym wyborem dla nowoczesnego programowania w Elixirze. Warto zauważyć, że przed Mapami, Elixir używał modułów HashDict i Dict, które są teraz przestarzałe.
Jednakże, w scenariuszach wymagających uporządkowanych danych, można przyjrzeć się listom słów kluczowych w Elixirze. Są to listy krotek, efektywne dla mniejszych kolekcji, ale nie tak wydajne dla dużych zbiorów danych jak Mapy.
Warto mieć na uwadze, że Mapy przechowują swoje klucze w “płaskiej” strukturze, co sprawia, że bezpośredni dostęp do zagnieżdżonych wartości może być nieco trudny. Dla głębokiego zagnieżdżenia, można rozważyć ustrukturyzowany dostęp poprzez funkcje get_in
, put_in
, update_in
i get_and_update_in
, które pozwalają na bardziej dynamiczne podejście do manipulacji zagnieżdżonymi danymi.
Podsumowując, chociaż Mapy są Twoim pierwszym wyborem dla potrzeb tablic asocjacyjnych w Elixirze, język ten oferuje bogatą różnorodność struktur danych na każdą okazję, zachęcając Cię do wyboru odpowiedniego narzędzia do pracy.