Sobes.tech
Junior — Middle

Aké operácie sú povolené pri práci s nil slice v programovacom jazyku?

sobes.tech AI

Odpoveď od AI

V Go je nil-slice rez, ktorý neukazuje na žiadne pole a má dĺžku a kapacitu rovnakú nulu. Nasledujúce operácie sú povolené:

  • Čítanie dĺžky a kapacity: len(nilSlice) == 0, cap(nilSlice) == 0.
  • Pridávanie prvkov pomocou append, čo vytvorí nový rez s pridelenou pamäťou.
  • Prechádzanie nil-rezu v cykle for range — cyklus sa jednoducho nevykoná.

Nie je možné:

  • Prístup k prvkom podľa indexu, napríklad nilSlice[0] spôsobí panic.

Príklad:

var s []int // nil-rez
fmt.Println(len(s)) // 0
s = append(s, 1)    // teraz s nie je nil
fmt.Println(s)      // [1]