Какие знаешь аргументы у make

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

Ответ

make в Go используется для инициализации слайсов, каналов и мапов с предопределёнными параметрами. Основные аргументы:

  1. Слайс:
    make([]T, len, cap)

    • T — тип элементов.
    • len — длина (количество элементов).
    • cap (опционально) — ёмкость (размер выделенной памяти).

    Пример:

    s := make([]int, 5, 10) // слайс из 5 нулей, с резервом до 10 элементов.
  1. Канал:
    make(chan T, bufferSize)

    • T — тип данных канала.
    • bufferSize (опционально) — размер буфера.

    Пример:

    ch := make(chan string, 3) // буферизированный канал на 3 элемента.
  1. Мап:
    make(map[K]V, initialCapacity)

    • K — тип ключа.
    • V — тип значения.
    • initialCapacity (опционально) — начальный размер (хинт для оптимизации).

    Пример:

    m := make(map[string]int, 100) // мап с зарезервированным местом под ~100 элементов.