Назад к вопросам
Intern
221
questionbank

Как объявлять слайс в Go?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

В Go слайсы могут быть объявлены несколькими способами:

  1. Используя литерал слайса:

    // Объявление и инициализация слайса целых чисел
    s := []int{1, 2, 3}
    
  2. Используя make:

    // Объявление слайса целых чисел с длиной 5 и вместимостью 5
    s1 := make([]int, 5)
    // Объявление слайса целых чисел с длиной 0 и вместимостью 10
    s2 := make([]int, 0, 10)
    

    Синтаксис make([]Type, length, capacity):

    • Type: Тип элементов слайса.
    • length: Начальная длина слайса (количество доступных элементов).
    • capacity (опционально): Вместимость слайса (максимальное количество элементов, которые могут быть добавлены до перераспределения базового массива). Если не указана, равна length.
  3. Объявление слайса без инициализации (значение по умолчанию nil):

    // Объявление слайса целых чисел со значением по умолчанию nil
    var s []int
    

    nil слайс имеет длину 0 и вместимость 0 и не имеет базового массива.

  4. Создание слайса из существующего массива или другого слайса:

    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 (опционально): Индекс, определяющий вместимость нового слайса.

Каждый из этих способов имеет свои особенности и применяется в зависимости от сценария использования.