Что происходит при создании Map через Make

«Что происходит при создании Map через Make» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При вызове make(map[K]V) создаётся хеш-таблица с нулевым размером, готовая к добавлению элементов. Если указан второй аргумент (make(map[K]V, hint)), Go резервирует память под hint элементов, что оптимизирует производительность при последующих вставках (избегает лишних аллокаций).

Важно: hint — это подсказка, а не фиксированный размер. Map динамически растёт при добавлении элементов. Если hint отрицательный или превышает лимиты, возникает паника.

Пример:

m := make(map[string]int, 10) // Резервирует память под ~10 элементов
m["foo"] = 42                // Вставка без дополнительной аллокации