Junior — Middle
Welke gevolgen heeft het gebruik van de append-methode voor een slice die zonder initiële parameters is gedeclareerd?
sobes.tech AI
Antwoord van AI
Als een slice in Go zonder initiële parameters wordt gedeclareerd, bijvoorbeeld var s []int, is deze aanvankelijk gelijk aan nil en wijst niet naar een toegewezen array. Bij gebruik van de functie append wijst Go automatisch een nieuwe array toe en voegt de elementen toe, waardoor een nieuwe slice met de benodigde capaciteit wordt geretourneerd.
Dit betekent dat append veilig werkt met nil-slices, en je kunt schrijven:
var s []int // nil-slice
s = append(s, 1, 2, 3) // nu wijst s naar een nieuwe array met de elementen
Gevolgen:
- Het is niet nodig om de slice te initialiseren voordat je
appendgebruikt. - Bij de eerste aanroep van
appendwordt geheugen toegewezen. - Als de slice nil is, dan is
len(s) == 0encap(s) == 0.
Daarom is het gebruik van append met nil-slices een standaardpraktijk in Go die het werken met dynamische collecties vereenvoudigt.