Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: Go, slice, make, length, capacity

Как задать длину и ёмкость слайса через make?

Проверяет понимание создания слайсов в Go с помощью make и разницы между длиной и ёмкостью.

Короткий ответ

В Go функция make используется для создания слайсов с заданной длиной и ёмкостью. Синтаксис: make([]T, length, capacity). Длина — это количество доступных элементов, ёмкость — размер выделенного массива. Если ёмкость не указана, она равна длине. Это позволяет оптимизировать память и избежать лишних аллокаций.

Длинный ответ

Создание слайсов через make

В Go слайс — это динамическая структура данных, основанная на массиве. Функция make позволяет создать слайс с заданной длиной и ёмкостью, что даёт контроль над выделением памяти.

Синтаксис и параметры

Вызов make([]T, length, capacity) создаёт слайс типа T с длиной length и ёмкостью capacity. Длина определяет количество доступных для чтения/записи элементов, а ёмкость — размер внутреннего массива. Если capacity не указан, он равен length.

// Слайс длины 5, ёмкость 5 (по умолчанию)
s := make([]int, 5)
fmt.Println(len(s), cap(s)) // 5 5

// Слайс длины 3, ёмкость 10
s2 := make([]int, 3, 10)
fmt.Println(len(s2), cap(s2)) // 3 10

Практическое применение

Указание ёмкости полезно, когда заранее известно примерное количество элементов. Это уменьшает количество переаллокаций при добавлении элементов через append.

// Без указания ёмкости: append может вызывать переаллокацию
s := make([]int, 0, 100) // ёмкость 100
for i := 0; i < 100; i++ {
    s = append(s, i) // без переаллокации
}

Если ёмкость не указана, append будет выделять новую память при превышении текущей ёмкости, что может снизить производительность.

Вывод

Используйте make с явным указанием ёмкости для оптимизации работы с большими или предсказуемыми наборами данных. Это снижает накладные расходы на управление памятью и повышает эффективность кода.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#Go

#slice

#make

#length

#capacity

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.