Найти в Дзене

051 Len и Cap в срезе

В Go это ссылочный тип, который содержит указатель на базовый массив, длину среза (количество элементов) и емкость среза (максимальное количество элементов, которое может быть сохранено в базовом массиве).

Функция len() возвращает длину фрагмента, т.е. количество элементов, хранящихся в нем в данный момент. Например, len(mySlice) возвращает количество элементов в срезе mySlice.

Функция cap() возвращает емкость среза, то есть максимальное количество элементов, которое может вместить базовый массив. Например, cap(mySlice) вернет максимальное количество элементов, которое может храниться в срезе mySlice.

Важно отметить, что при добавлении нового элемента в срез, если длина среза равна емкости среза, создается новый базовый массив с удвоенной емкостью, а исходные элементы копируются в новый массив. Это может привести к значительным накладным расходам, если срез постоянно расширяется сверх его емкости.