Sobes.tech
Junior — Middle

Hoeveel elementen en welke capaciteit zal een slice hebben na het toevoegen van één element, als deze oorspronkelijk niet was geïnitialiseerd?

sobes.tech AI

Antwoord van AI

Als een slice in Go aanvankelijk niet geïnitialiseerd is (d.w.z. gelijk aan nil), en je voegt er een element aan toe met behulp van de functie append, dan:

  • Het aantal elementen (len) na toevoeging zal 1 zijn.
  • De capaciteit (cap) hangt af van de implementatie, maar begint meestal met een kleine capaciteit, bijvoorbeeld 1 of 2.

Voorbeeld:

var s []int // nil-slice
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // meestal >= 1

Dus, bij het toevoegen van het eerste element aan een nil-slice in Go, wijst Go automatisch geheugen toe voor een nieuwe slice met voldoende capaciteit om dat element op te slaan.