Расскажи про слайсы в Go: как они устроены и для чего используются?

В Go слайс — это структура, которая содержит три основных поля:

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

Что ответить на собеседовании

В Go слайс — это структура, которая содержит три основных поля:

Подробный разбор

Ответ с пояснениями

В Go слайс — это структура, которая содержит три основных поля:

  • указатель на массив — адрес первого элемента слайса в базовом массиве;
  • длина (len) — количество элементов, доступных в слайсе;
  • ёмкость (cap) — максимальное количество элементов, которое можно хранить в базовом массиве, начиная с указателя.

Под капотом слайс — это не массив, а «окно» на часть массива. При добавлении элементов с помощью append, если длина превышает ёмкость, создаётся новый массив большего размера, и данные копируются туда.

Пример структуры слайса (упрощённо):

type sliceHeader struct {
    ptr *ElementType
    len int
    cap int
}

Это позволяет эффективно работать с динамическими массивами без копирования данных при каждом добавлении, пока не превышается текущая ёмкость.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку