Back to questions
Wildberries
Junior — Middle
77
Как различаются понятия длины и емкости среза в языке программирования?
Companies where asked
Answer from AI
sobes.tech AI
В языке Go срез (slice) имеет два важных параметра: длину (len) и емкость (cap).
- Длина (
len) — количество элементов, которые срез в данный момент содержит и к которым можно обращаться. - Емкость (
cap) — максимальное количество элементов, которые срез может вместить без выделения новой памяти.
Например:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:3] // срез содержит элементы 2 и 3
fmt.Println(len(s)) // 2
fmt.Println(cap(s)) // 4, т.к. срез начинается с arr[1], и оттуда до конца массива 4 элемента
Емкость важна для понимания, когда при добавлении элементов в срез произойдет перераспределение памяти.