Sobes.tech
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.