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ą.