Что такое функция make()

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

Ответ

Функция make() в Go используется для инициализации и выделения памяти для встроенных типов: срезов (slices), карт (maps) и каналов (channels). Она возвращает инициализированный (не нулевой) объект указанного типа.

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

  • Для срезов: make([]T, len, cap) — создаёт срез с длиной len и вместимостью cap (опционально).
  • Для карт: make(map[K]V, initialCapacity) — создаёт карту с начальным размером (опционально).
  • Для каналов: make(chan T, bufferSize) — создаёт буферизированный канал (размер буфера опционален).

Пример:

s := make([]int, 5, 10)    // Срез: len=5, cap=10
m := make(map[string]int)   // Карта с нулевой ёмкостью
ch := make(chan int, 3)     // Канал с буфером на 3 элемента