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

Что происходит, если создать слайс с нулевым значением и какие операции с ним допустимы?

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

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

sobes.tech AI

В Go слайс с нулевым значением — это nil слайс. Он не указывает ни на какой массив и имеет длину и ёмкость равные нулю.

Допустимые операции с таким слайсом:

  • Получение длины и ёмкости (len(slice) == 0, cap(slice) == 0)
  • Итерация по слайсу (цикл просто не выполнится)
  • Добавление элементов через append, что создаст новый слайс с выделенной памятью

Пример:

var s []int // nil слайс
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // теперь s не nil, содержит один элемент

Нельзя обращаться к элементам по индексу, так как слайс пуст и это вызовет панику.