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

Что означает нулевое значение для среза в языке программирования?

Компании, где спрашивали
Digital Spirit

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

sobes.tech AI

В языке Go срез (slice) — это динамический массив, который содержит ссылку на массив, длину и ёмкость.

Нулевое значение среза — это nil. Такой срез не указывает ни на какой массив, его длина и ёмкость равны нулю.

Особенности нулевого среза:

  • Его можно проверить через slice == nil.
  • Попытка обратиться к элементам такого среза приведёт к панике.
  • Его можно использовать как пустой срез, например, для обозначения отсутствия данных.

Пример:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
fmt.Println(cap(s))   // 0

// Можно безопасно инициализировать пустой срез:
s = []int{}
fmt.Println(s == nil) // false
fmt.Println(len(s))   // 0

Таким образом, нулевое значение среза — это nil, что отличается от пустого, но не nil среза.