В Go это ссылочный тип, который содержит указатель на базовый массив, длину среза (количество элементов) и емкость среза (максимальное количество элементов, которое может быть сохранено в базовом массиве).
Функция len() возвращает длину фрагмента, т.е. количество элементов, хранящихся в нем в данный момент. Например, len(mySlice) возвращает количество элементов в срезе mySlice.
Функция cap() возвращает емкость среза, то есть максимальное количество элементов, которое может вместить базовый массив. Например, cap(mySlice) вернет максимальное количество элементов, которое может храниться в срезе mySlice.
Важно отметить, что при добавлении нового элемента в срез, если длина среза равна емкости среза, создается новый базовый массив с удвоенной емкостью, а исходные элементы копируются в новый массив. Это может привести к значительным накладным расходам, если срез постоянно расширяется сверх его емкости.
051 Len и Cap в срезе
5 марта 20235 мар 2023
103
~1 мин
Взгляните на эти темы