Sobes.tech
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 nil is (bijvoorbeeld, if slice == nil), wat handig is om te bepalen of de slice is geïnitialiseerd.
  • De lengte en capaciteit verkrijgen met len(slice) en cap(slice). Voor een nil-slice zijn lengte en capaciteit 0.
  • De operator append gebruiken om elementen toe te voegen. Dit creëert automatisch een nieuwe slice met toegewezen geheugen als de oorspronkelijke slice nil is.

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]