Назад к вопросам
Junior — Middle
87
Что случится, если попытаться добавить элемент в слайс, у которого длина достигла его максимальной вместимости?
Ответ от нейросети
sobes.tech 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]
Важно: этот процесс может быть затратным по времени и памяти, поэтому если заранее известен размер, лучше выделить достаточную вместимость.