Junior — Middle
¿En qué se diferencian los conceptos de longitud y capacidad de corte en un lenguaje de programación?
sobes.tech AI
Respuesta de la IA
В языке 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 элемента
Емкость важна для понимания, когда при добавлении элементов в срез произойдет перераспределение памяти.