Какой len и cap будет у пустого слайса, если в него добавить 10 элементов

«Какой len и cap будет у пустого слайса, если в него добавить 10 элементов» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Пустой слайс имеет len=0 и cap=0. При добавлении 10 элементов через append:

var s []int
s = append(s, make([]int, 10)...)

После этого:

  • len=10 (количество элементов)
  • cap будет >=10 (точное значение зависит от реализации Go, обычно удваивается при переаллокации)

Если добавить поэлементно в цикле:

var s []int
for i := 0; i < 10; i++ {
    s = append(s, i)
}

Cap может расти постепенно (например, 0→1→2→4→8→16).