Junior — Middle
Welke acties zijn toegestaan bij het werken met een slice in Go als deze niet expliciet is geïnitialiseerd?
sobes.tech AI
Antwoord van AI
In Go, als een slice niet expliciet is geïnitialiseerd (dat wil zeggen, de waarde nil heeft), kunnen de volgende acties worden ondernomen:
- Controleren of het
nilis (bijvoorbeeld,if slice == nil), wat handig is om te bepalen of de slice is geïnitialiseerd. - De lengte en capaciteit verkrijgen met
len(slice)encap(slice). Voor eennil-slice zijn lengte en capaciteit 0. - De operator
appendgebruiken om elementen toe te voegen. Dit creëert automatisch een nieuwe slice met toegewezen geheugen als de oorspronkelijke slicenilis.
Echter, je kunt niet naar elementen van de slice op indexniveau verwijzen als deze nil of leeg is, omdat dit een panic zal veroorzaken.
Voorbeeld:
var s []int // s == nil
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
s = append(s, 1) // nu is s geïnitialiseerd en bevat [1]