Junior — Middle
Hoe wordt de door een slice in geheugen gebruikte grootte in een programmeertaal bepaald?
sobes.tech AI
Antwoord van AI
In Go is een slice een structuur die uit drie velden bestaat: een pointer naar een array, een lengte en een capaciteit. De grootte van een slice in het geheugen wordt bepaald door de som van deze drie velden.
Typisch neemt de grootte van een slice 24 bytes in beslag op 64-bit systemen (8 bytes per veld).
Belangrijk: de slice zelf bevat geen data, maar slechts een verwijzing naar de array waar de elementen in opgeslagen zijn. De grootte van de data hangt af van de lengte van de slice en het type van de elementen.
Voorbeeld:
var s []int
// s neemt een vaste grootte in beslag (24 bytes),
// maar de data waarnaar het verwijst, neemt len(s)*sizeof(int) bytes in beslag