Junior — Middle
Wat gebeurt er als je probeert een element toe te voegen aan een slice waarvan de lengte de maximale capaciteit heeft bereikt?
sobes.tech AI
Antwoord van AI
Если попытаться добавить элемент в слайс в Go, у которого длина достигла максимальной вместимости (capacity), то происходит автоматическое выделение нового массива с увеличенной вместимостью. Содержимое старого массива копируется в новый, и ссылка слайса обновляется на этот новый массив. Таким образом, слайс расширяется динамически, и добавление элемента происходит успешно.
Пример:
s := make([]int, 3, 3) // длина и вместимость равны 3
s[0], s[1], s[2] = 1, 2, 3
s = append(s, 4) // вместимость увеличится, элемент добавится
fmt.Println(s) // [1 2 3 4]
Важно: этот процесс может быть затратным по времени и памяти, поэтому если заранее известен размер, лучше выделить достаточную вместимость.