Назад к вопросам
Intern
222
questionbank
Как объявлять слайс в Go?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
В Go слайсы могут быть объявлены несколькими способами:
-
Используя литерал слайса:
// Объявление и инициализация слайса целых чисел s := []int{1, 2, 3} -
Используя
make:// Объявление слайса целых чисел с длиной 5 и вместимостью 5 s1 := make([]int, 5) // Объявление слайса целых чисел с длиной 0 и вместимостью 10 s2 := make([]int, 0, 10)Синтаксис
make([]Type, length, capacity):Type: Тип элементов слайса.length: Начальная длина слайса (количество доступных элементов).capacity(опционально): Вместимость слайса (максимальное количество элементов, которые могут быть добавлены до перераспределения базового массива). Если не указана, равнаlength.
-
Объявление слайса без инициализации (значение по умолчанию
nil):// Объявление слайса целых чисел со значением по умолчанию nil var s []intnilслайс имеет длину 0 и вместимость 0 и не имеет базового массива. -
Создание слайса из существующего массива или другого слайса:
arr := [5]int{10, 20, 30, 40, 50} // Создание слайса из первых трех элементов массива s := arr[0:3] // [10, 20, 30] otherSlice := []string{"a", "b", "c", "d", "e"} // Создание нового слайса из подмножества другого слайса subSlice := otherSlice[1:4] // ["b", "c", "d"]Синтаксис
arrayOrSlice[low:high]илиarrayOrSlice[low:high:max]:low: Начальный индекс (включая).high: Конечный индекс (не включая).max(опционально): Индекс, определяющий вместимость нового слайса.
Каждый из этих способов имеет свои особенности и применяется в зависимости от сценария использования.