Sobes.tech
Junior — Middle

Wat gebeurt er als je een slice met een nulwaarde maakt en welke bewerkingen zijn ermee toegestaan?

sobes.tech AI

Antwoord van AI

In Go is een slice met een nulwaarde een nil slice. Het wijst niet naar een array en heeft een lengte en capaciteit van nul.

Toegestane bewerkingen met zo'n slice:

  • Het verkrijgen van de lengte en capaciteit (len(slice) == 0, cap(slice) == 0)
  • Iteratie over de slice (de lus wordt gewoon niet uitgevoerd)
  • Toevoegen van elementen via append, wat een nieuwe slice met toegewezen geheugen creëert

Voorbeeld:

var s []int // nil slice
fmt.Println(s == nil) // true
fmt.Println(len(s))   // 0
s = append(s, 1)      // nu is s niet nil, bevat één element

Het is niet mogelijk om elementen op index te benaderen, omdat de slice leeg is en dit een panic veroorzaakt.