Elixir:
Использование ассоциативных массивов
Как это сделать:
Создать Карту довольно просто. Используйте синтаксис %{}
, вот так:
my_map = %{"name" => "Алекс", "age" => 32}
IO.inspect(my_map)
Доступ к значениям осуществляется с использованием ключей:
IO.puts my_map["name"]
Вывод: Алекс
Чтобы добавить или обновить значения, можно использовать функцию Map.put/3
:
updated_map = Map.put(my_map, "location", "НЙ")
IO.inspect(updated_map)
Вывод: %{"age" => 32, "location" => "НЙ", "name" => "Алекс"}
Удаление ключей также просто с помощью Map.delete/2
:
trimmed_map = Map.delete(updated_map, "age")
IO.inspect(trimmed_map)
Вывод: %{"location" => "НЙ", "name" => "Алекс"}
Глубже
Карты в Elixir - это эволюция более старых типов хранения ключ-значение, таких как Хэши в Ruby или Словари в Python. Они позволяют более эффективно производить поиски и вставки, что делает их предпочитаемым выбором для современного программирования на Elixir. Стоит отметить, что до появления Карт, в Elixir использовались модули HashDict и Dict, которые сейчас устарели.
Однако для сценариев, требующих упорядоченных данных, вы можете посмотреть на ключевые списки в Elixir. Это списки кортежей, эффективные для небольших коллекций, но не такие производительные для больших наборов данных, как Карты.
Имейте в виду, что Карты хранят свои ключи в “плоской” структуре, что делает прямой доступ к вложенным значениям немного сложным. Для глубокой вложенности вы можете рассмотреть структурированный доступ через функции get_in
, put_in
, update_in
и get_and_update_in
, позволяющие более динамично манипулировать вложенными данными.
В заключение, хотя Карты и являются вашим основным выбором для нужд ассоциативных массивов в Elixir, язык предлагает богатое разнообразие структур данных для любого сценария, поощряя вас выбирать правильный инструмент для работы.