Junior
105
questionbank

Что такое len и capacity в срезах в Go?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

В Go срез (slice) состоит из трех полей: указатель на базовый массив, длина (len) и емкость (capacity).

  • Длина (len): Количество элементов, фактически содержащихся в срезе. Это число доступных для использования элементов.
  • Емкость (capacity): Количество элементов от начала среза до конца базового массива. Это максимальное возможное количество элементов, которое может быть добавлено в срез без перераспределения (создания нового базового массива).
go

При добавлении элементов в срез с использованием функции append, если текущая длина среза достигает его емкости, Go создает новый базовый массив большей емкости, копирует в него старые элементы и обновляет указатель среза.