Sobes.tech
Junior — Middle

Aké akcie sú povolené pri práci so slice v Go, ak nebol výslovne inicializovaný?

sobes.tech AI

Odpoveď od AI

V jazyku Go, ak nie je slice výslovne inicializované (t.j. má hodnotu nil), je možné vykonať nasledovné operácie:

  • Kontrolovať, či je nil (napríklad if slice == nil), čo je užitočné na určenie, či bol slice inicializovaný.
  • Získať dĺžku a kapacitu pomocou len(slice) a cap(slice). Pre nil-slice sú dĺžka a kapacita 0.
  • Použiť operátor append na pridanie prvkov. append automaticky vytvorí nový slice s pridelenou pamäťou, ak je pôvodný slice nil.

Nedá sa však pristupovať k prvkom slice podľa indexu, ak je nil alebo prázdny, pretože to spôsobí panic.

Príklad:

var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // teraz je s inicializovaný a obsahuje [1]