Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Golang: nil slice, nil map, zero value, safe read, panic write

В чём разница между zero value слайса и мапы?

Проверяет знание начального состояния незинициализированных срезов и отображений.

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

Zero value слайса — это nil-срез, с которым можно append или range без panic. Zero value мапы — это nil-мапа, из которой можно читать (m[key] даёт нулевое значение), но нельзя записывать (m[key] = val вызывает panic).

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

Nil-срез:

  • Операции append, range, copy безопасны.

Nil-мапа:

  • Чтение v, ok := m[key] безопасно (v zero, ok=false).

  • Запись m[key] = val → panic: assignment to entry in nil map.

Инициализация:

  • s := make([]T,0) или m := make(map[K]V) чтобы избежать nil.

Вывод:

Срезы более гибкие по умолчанию, карты требуют явного make.

  • Аватар

    Golang Guru

    Maxim Lukyanov

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

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Golang

    Golang

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

#nil slice

#nil map

#zero value

#safe read

#panic write

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

  • Аватар

    Golang Guru

    Maxim Lukyanov

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