Sobes.tech
Junior — Middle

Какво се случва, ако създадете слайс с нулева стойност и какви операции са допустими с него?

sobes.tech AI

Отговор от 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, съдържа един елемент

Не е възможно да се достъпват елементи по индекс, тъй като слайсът е празен и това ще предизвика паника.