Senior
Wat is een slice en hoe verschilt het van een array?
sobes.tech AI
Antwoord van AI
In Go is een array een structuur van vaste grootte die elementen van hetzelfde type bevat. De grootte van de array wordt bij de declaratie vastgesteld en kan niet worden gewijzigd tijdens de uitvoering van het programma.
Slice is een dynamisch, in grootte aanpasbaar deel van een array. Het is een structuur die een pointer naar de array, de lengte en de capaciteit bevat. Slices maken het mogelijk om met subsets van de array te werken en zich automatisch uit te breiden indien nodig.
Belangrijkste verschillen:
- Grootte: array heeft een vaste grootte, slice is dynamisch.
- Overdracht: arrays worden per waarde (kopie) doorgegeven, slices per referentie (pointer naar de array).
- Flexibiliteit: slices kunnen worden uitgebreid met de functie
append, arrays niet.
Voorbeeld:
var arr [3]int = [3]int{1, 2, 3} // vaste grootte array
var s []int = arr[0:2] // slice die verwijst naar een deel van de array
s = append(s, 4) // slice wordt uitgebreid, en indien nodig wordt een nieuwe array gemaakt