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íkladif slice == nil), čo je užitočné na určenie, či bol slice inicializovaný. - Získať dĺžku a kapacitu pomocou
len(slice)acap(slice). Prenil-slice sú dĺžka a kapacita 0. - Použiť operátor
appendna pridanie prvkov.appendautomaticky vytvorí nový slice s pridelenou pamäťou, ak je pôvodný slicenil.
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]