Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: Go, map, make, capacity, initialization

Как объявить map с заранее заданной ёмкостью в Go?

Проверяет знание синтаксиса инициализации map с указанием начальной ёмкости в Go для оптимизации производительности.

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

В Go map с заранее заданной ёмкостью объявляется с помощью функции make, вторым аргументом передаётся ёмкость. Например: m := make(map[string]int, 100). Это позволяет заранее выделить память под указанное количество элементов, что уменьшает количество перераспределений памяти при добавлении данных.

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

Объявление map с ёмкостью в Go

В Go map — это ссылочный тип данных, который хранит пары ключ-значение. При создании map с помощью make можно указать начальную ёмкость, чтобы оптимизировать производительность, особенно если заранее известно примерное количество элементов.

Синтаксис

Для объявления map с ёмкостью используется следующий синтаксис:

m := make(map[KeyType]ValueType, capacity)

Где KeyType — тип ключа, ValueType — тип значения, а capacity — целое число, указывающее начальную ёмкость.

Пример

package main

import "fmt"

func main() {
    // Создаём map с ёмкостью 10
    scores := make(map[string]int, 10)
    scores["Alice"] = 95
    scores["Bob"] = 87
    fmt.Println(scores)
}

Зачем указывать ёмкость?

Указание ёмкости позволяет избежать многократного перераспределения памяти при добавлении элементов. Без указания ёмкости Go будет динамически увеличивать map по мере необходимости, что может привести к снижению производительности. Если вы знаете, что в map будет около 1000 элементов, указание ёмкости 1000 поможет выделить память сразу.

Важные моменты

  • Ёмкость не ограничивает максимальное количество элементов — map может расти динамически.
  • Если ёмкость не указана, Go использует значение по умолчанию (обычно 0).
  • Ёмкость можно проверить с помощью функции cap(), но для map это не всегда даёт точную информацию.

Вывод

Используйте make с указанием ёмкости при создании map, когда заранее известно примерное количество элементов. Это улучшает производительность за счёт уменьшения количества операций выделения памяти.

  • Аватар

    Golang Guru

    Maxim Lukyanov

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • Golang

    Golang

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

#Go

#map

#make

#capacity

#initialization

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

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