Junior — Middle
Колко елемента и каква ще бъде капацитетът на слайс след добавяне на един елемент, ако той първоначално не е бил инициализиран?
sobes.tech AI
Отговор от AI
Ако слайс в Go първоначално не е инициализиран (т.е. равен на nil), и добавите към него един елемент с помощта на функцията append, тогава:
- Броят на елементите (len) след добавянето ще бъде 1.
- Вместимостта (cap) ще зависи от реализацията, но обикновено започва с малка вместимост, например 1 или 2.
Пример:
var s []int // nil-слайс
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // обикновено >= 1
По този начин, при добавяне на първия елемент към nil-слайс в Go, Go автоматично заделя памет за нов слайс с достатъчна вместимост за съхранение на този елемент.