Что такое capacity

«Что такое capacity» — вопрос из категории Golang, который задают на 26% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Capacity — это максимальное количество элементов, которое может вместить слайс без переаллокации памяти. При превышении capacity слайс автоматически увеличивается (обычно в 2 раза), но это требует копирования данных.

s := make([]int, 0, 5) // len=0, cap=5
s = append(s, 1, 2, 3) // len=3, cap=5
s = append(s, 4, 5, 6) // len=6, cap=10 (переаллокация)

Важно: capacity можно узнать через cap(slice). Оптимизация capacity помогает избежать частых переаллокаций при добавлении элементов.