Назад к вопросам
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
Таким образом, емкость увеличивается динамически, чтобы эффективно управлять памятью при росте слайса.