Junior — Middle
Wat bevat een niet-geïnitialiseerde slice in een programmeertaal?
sobes.tech AI
Antwoord van AI
In Go is een slice een structuur die drie velden bevat: een pointer naar een array, een lengte (len) en een capaciteit (capacity). Als de slice niet geïnitialiseerd is, dat wil zeggen gedeclareerd maar niet toegewezen, heeft deze de null-waarde nil.
Niet-geïnitialiseerde slice:
- De pointer is gelijk aan
nil. - De lengte en capaciteit zijn 0.
Voorbeeld:
var s []int
fmt.Println(s == nil) // true
fmt.Println(len(s)) // 0
fmt.Println(cap(s)) // 0
Zo'n slice wijst niet naar een array en bevat geen elementen. Het kan veilig worden gebruikt in operaties, bijvoorbeeld door elementen toe te voegen met append, waarna de slice automatisch wordt geïnitialiseerd.