Sobes.tech
Назад к вопросам
Junior — Middle
79

Можете объяснить, что такое срез (slice) в программировании и как он работает?

Компании, где спрашивали
Цифровая Эволюция

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

sobes.tech AI

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

  • указатель на первый элемент массива,
  • длину (количество элементов в срезе),
  • емкость (максимальное количество элементов, которое может содержать срез без перераспределения).

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

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

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

slice = append(slice, 6) // добавляем элемент, при необходимости выделяется новая память
fmt.Println(slice) // [2 3 4 6]

Срезы удобны тем, что можно создавать новые срезы из существующих, изменять их размер и передавать в функции без копирования всего массива.