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

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

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

sobes.tech 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 автоматически выделяет память под новый слайс с емкостью, достаточной для хранения этого элемента.