Sobes.tech
Back to questions
Senior
3

Что такое срез в Go?

Companies where asked
Small

Answer from AI

sobes.tech AI

Срез (slice) в Go — это динамический, гибкий и удобный способ работы с последовательностями элементов одного типа. Он представляет собой ссылку на часть массива с определённой длиной и ёмкостью.

Основные характеристики среза:

  • Срез содержит указатель на базовый массив, длину (len) и ёмкость (cap).
  • Длина — количество элементов, доступных в срезе.
  • Ёмкость — максимальное количество элементов, которые можно вместить, начиная с текущего указателя.
  • Срезы можно расширять с помощью функции append, которая при необходимости создаёт новый массив.

Пример создания и использования среза:

arr := [5]int{1, 2, 3, 4, 5}      // массив
s := arr[1:4]                    // срез элементов с индексами 1,2,3
fmt.Println(s)                   // [2 3 4]

s = append(s, 6)                 // добавляем элемент, возможно создаст новый массив
fmt.Println(s)                   // [2 3 4 6]

Срезы позволяют эффективно работать с последовательностями без копирования данных, управляя только ссылками и метаданными.