Sobes.tech
Junior — Middle

Kas nutinka, jei sukuriate slice su nuline verte ir kokios operacijos su ja leidžiamos?

sobes.tech AI

Atsakymas iš AI

Go kalboje, nulinės reikšmės slice yra nil slice. Ji nurodo į jokią masyvą ir turi ilgį bei talpą, lygias nuliui.

Leistinos operacijos su tokiu slice:

  • Ilgio ir talpos gavimas (len(slice) == 0, cap(slice) == 0)
  • Iteracija per slice (ciklas paprasčiausiai neįvykdys)
  • Elementų pridėjimas naudojant append, kuris sukurs naują slice su paskirta atmintimi

Pavyzdys:

var s []int // nil slice
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // dabar s nėra nil, turi vieną elementą

Negalima pasiekti elementų pagal indeksą, nes slice yra tuščias ir tai sukels paniką.