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

Чем отличаются параметры длины и вместимости массива в программировании?

Компании, где спрашивали
WildberriesWildberries

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

sobes.tech AI

В Go массивы имеют фиксированную длину, которая задаётся при создании и не может изменяться. Параметр длина (length) массива — это количество элементов, которое массив содержит, и оно фиксировано.

Вместимость (capacity) — это количество элементов, которое массив или срез может вместить без выделения дополнительной памяти. Для массивов вместимость равна длине, так как они фиксированы. Для срезов вместимость может быть больше длины, так как срезы — это динамические структуры, которые могут расширяться.

Пример:

arr := [5]int{1, 2, 3, 4, 5} // длина и вместимость равны 5

slice := arr[1:3]             // длина среза 2 (элементы с индексами 1 и 2)
// вместимость среза 4 (с 1-го индекса до конца массива)

fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4

Таким образом, длина — это текущий размер (количество элементов), а вместимость — максимальный размер без перераспределения памяти.