Back to questions
Middle+
4
Из чего состоит слайс, его внутреннее устройство?
Companies where asked
ТБанк
Answer from AI
sobes.tech AI
Слайс в Go — это структура, которая содержит три основных поля:
- Указатель на массив — адрес первого элемента слайса во внутреннем массиве.
- Длина (len) — количество элементов, доступных в слайсе.
- Ёмкость (cap) — максимальное количество элементов, которые можно вместить, начиная с указателя, без выделения новой памяти.
Внутренне слайс — это не массив, а лишь «окно» на часть массива. При изменении слайса (например, добавлении элементов через append), если длина превышает ёмкость, создаётся новый массив, и данные копируются туда.
Пример структуры слайса (упрощённо):
type SliceHeader struct {
Data uintptr // указатель на первый элемент массива
Len int // длина слайса
Cap int // ёмкость слайса
}
Это позволяет эффективно работать с динамическими последовательностями без копирования данных при срезании.