Sobes.tech
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.