Основы Go
2026-02-26 19:50 Diff

Карты (map) — это встроенный тип данных в Go для хранения пар «ключ-значение». Они позволяют быстро находить, добавлять и удалять данные по ключу. Карты используются везде, где нужен ассоциативный массив или словарь.

Определение карты

Карту можно объявить без инициализации:

Здесь map[string]int — это тип карты, где:

  • Ключ имеет тип string.
  • Значение имеет тип int.

Ключами в Go могут быть любые типы данных, которые сравнимы (comparable). Это значит, что они могут использоваться в операциях == и !=. Это могут быть строки, числа, булевы значения, массивы фиксированной длины и структуры со сравниваемыми полями. Срезы, карты и функции не могут быть ключами, так как они не поддерживают сравнение.

Создание карты

При объявлении карта равна nil.

Чтобы начать её использовать, необходимо явно выделить память с помощью make():

Можно создать карту и сразу инициализировать её значениями через литерал:

Обращение к элементам

Чтобы получить значение по ключу, используется синтаксис map[key]:

Если обратиться к несуществующему ключу, будет возвращено значение по умолчанию для типа, например 0 для чисел или пустая строка для string:

Проверка существования ключа

Чтобы проверить, есть ли ключ в карте, используется «двойное присваивание»:

Переменная exists будет true, если ключ найден, и false — если нет.

Удаление элемента

Удалить элемент из карты можно с помощью встроенной функции delete():

Если ключа нет, delete() просто ничего не делает.

Размер карты

Чтобы узнать количество элементов в карте, используется len():