Слайс — это легкая оболочка над массивом. Он не хранит данные сам по себе, а ссылается на базовый массив.
Структура слайса:
go
make([]T, length, capacity)
создается базовый массив указанной емкости и слайс, ссылающийся на него с указанной длиной.arr[low:high:max]
) создается новый слайс, который ссылается на ту же область памяти базового массива, но с другими указателем, длиной и емкостью.append
может привести к перевыделению памяти. Если текущая емкость недостаточна для добавления новых элементов, Go создает новый, больший базовый массив, копирует в него элементы старого массива и обновляет указатель слайса на новый массив. Это называется реаллокацией. Алгоритм роста емкости при аппенде экспоненциальный (удваивается до определенноСлайс — это легкая оболочка над массивом. Он не хранит данные сам по себе, а ссылается на базовый массив.
Структура слайса:
go
make([]T, length, capacity)
создается базовый массив указанной емкости и слайс, ссылающийся на него с указанной длиной.arr[low:high:max]
) создается новый слайс, который ссылается на ту же область памяти базового массива, но с другими указателем, длиной и емкостью.append
может привести к перевыделению памяти. Если текущая емкость недостаточна для добавления новых элементов, Go создает новый, больший базовый массив, копирует в него элементы старого массива и обновляет указатель слайса на новый массив. Это называется реаллокацией. Алгоритм роста емкости при аппенде экспоненциальный (удваивается до определенноRegister or sign in to get access to full answers for all questions from the question bank.