Junior — Middle
Čo sa stane, ak vytvoríte slice s nulovou hodnotou a aké operácie sú s ním povolené?
sobes.tech AI
Odpoveď od AI
V Go, slice s nulovou hodnotou je nil slice. Ne ukazuje na nijaký pole a má délku a kapacitu rovnakú nulu.
Povolené operácie s takýmto slice-om:
- Získanie dĺžky a kapacity (
len(slice) == 0,cap(slice) == 0) - Iterácia cez slice (cyklus sa jednoducho nevykoná)
- Pridanie prvkov pomocou
append, čo vytvorí nový slice s pridelenou pamäťou
Príklad:
var s []int // nil slice
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // teraz s nie je nil, obsahuje jeden prvok
Nie je možné pristupovať k prvkom podľa indexu, pretože slice je prázdny a spôsobí to panic.