Sobes.tech
Назад к вопросам
Middle+
3

Расскажи, как устроена map в Go?

Компании, где спрашивали
WildberriesWildberries

Ответ от нейросети

sobes.tech AI

В Go map — это встроенный тип данных для хранения пар ключ-значение с быстрым доступом.

Устройство:

  • map реализован как хеш-таблица.
  • Ключи хешируются, чтобы определить индекс в массиве бакетов.
  • Каждый бакет содержит несколько пар ключ-значение для разрешения коллизий.
  • При росте количества элементов происходит ре-хеширование и увеличение размера таблицы.

Особенности:

  • Ключи должны быть сравнимыми (например, строки, числа).
  • Доступ к элементам — амортизированное O(1).
  • Итерация по map не гарантирует порядок.

Пример:

m := make(map[string]int)
m["apple"] = 5
value := m["apple"]