In welke situaties in de programmeertaal gebeurt een automatische vergroting van de dynamische array (slice)?
sobes.tech AI
Antwoord van AI
In Go is een slice een structuur die een pointer naar een array, een lengte en een capaciteit bevat. De grootte van de slice wordt automatisch vergroot wanneer je elementen toevoegt met de functie append, en de huidige lengte van de slice bereikt de capaciteit.
Op dat moment wordt een nieuwe array met een grotere capaciteit (meestal twee keer zo groot als de vorige) toegewezen, worden de oude elementen naar de nieuwe array gekopieerd en wordt de pointer van de slice bijgewerkt naar deze nieuwe array. Dit stelt de slice in staat om dynamisch te groeien naarmate er meer elementen worden toegevoegd.
Voorbeeld:
s := make([]int, 0, 2) // lengte 0, capaciteit 2
s = append(s, 1) // lengte 1, capaciteit 2
s = append(s, 2) // lengte 2, capaciteit 2
s = append(s, 3) // lengte 3, capaciteit verhoogd, bijvoorbeeld naar 4
Op deze manier groeit de grootte automatisch wanneer elementen worden toegevoegd en de lengte de capaciteit van de slice bereikt.