Sobes.tech
Назад к вопросам
Junior — Middle
82

Что произойдет с длиной и емкостью слайса, если добавить в него 10 элементов, когда он изначально пуст?

Ответ от нейросети

sobes.tech AI

Если у вас есть пустой слайс в Go (длина и емкость равны 0), и вы добавляете в него 10 элементов с помощью функции append, то:

  • Длина слайса станет равна 10 — количество элементов, которые вы добавили.
  • Емкость слайса будет увеличена автоматически, обычно с запасом, чтобы избежать частых перераспределений памяти. Точная емкость зависит от реализации, но часто она будет равна 16 или больше, чтобы вместить новые элементы и иметь запас для будущих добавлений.

Пример:

var s []int // пустой слайс
s = append(s, make([]int, 10)...) // добавляем 10 элементов
fmt.Println(len(s)) // 10
fmt.Println(cap(s)) // >=10, обычно 16 или 20

Таким образом, емкость увеличивается динамически, чтобы эффективно управлять памятью при росте слайса.