Какие типы данных создаются при помощи Make

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

Ответ

В Go make используется для инициализации встроенных типов данных, которые требуют предварительного выделения памяти.

  • Срезы (slices)make([]T, len, cap)
    Создает срез с указанной длиной и вместимостью. Если cap не указан, равен len.
    s := make([]int, 5, 10) // len=5, cap=10
  • Мапы (maps)make(map[K]V, initialCapacity)
    Создает пустую мапу с указанной начальной вместимостью (опционально).
    m := make(map[string]int, 100)
  • Каналы (channels)make(chan T, bufferSize)
    Создает канал с буфером указанного размера. Если bufferSize=0 (или опущен), канал небуферизованный.
    ch := make(chan int, 10)

Важно: make не работает с обычными массивами ([n]T) или структурами – для них используется new или литеральная инициализация.