Back to questions
Principal
1
Что такое слайс в Go, из чего он состоит, как работает?
Companies where asked
BetBoom
Answer from AI
sobes.tech AI
Слайс в Go — это динамический, изменяемый по размеру, последовательный тип данных, который предоставляет удобный интерфейс для работы с массивами.
Слайс состоит из трёх компонентов:
- Указатель на массив — указывает на первый элемент массива, с которого начинается слайс.
- Длина (len) — количество элементов, доступных для чтения в слайсе.
- Ёмкость (cap) — максимальное количество элементов, которые можно вместить в слайс, начиная с указателя.
Работает слайс как окно на массив: он не копирует данные, а лишь ссылается на часть массива. При добавлении элементов с помощью append при превышении ёмкости создаётся новый массив, данные копируются, и слайс начинает ссылаться на новый массив.
Пример:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // слайс с элементами {2, 3, 4}
fmt.Println(s) // [2 3 4]
s = append(s, 6) // если cap позволяет, добавит 6 в исходный массив
Таким образом, слайсы удобны для работы с последовательностями данных без необходимости вручную управлять памятью.