Sobes.tech
Junior — Middle

Wat is het verschil tussen de lengte- en capaciteitparameters van een array in programmeren?

sobes.tech AI

Antwoord van AI

In Go hebben arrays een vaste lengte die bij het maken wordt vastgesteld en niet kan worden gewijzigd. De parameter lengte (length) van een array is het aantal elementen dat het bevat, en deze is vast.

De capaciteit (capacity) is het aantal elementen dat een array of slice kan bevatten zonder extra geheugen toe te wijzen. Voor arrays is de capaciteit gelijk aan de lengte, omdat ze vast zijn. Voor slices kan de capaciteit groter zijn dan de lengte, omdat slices dynamische structuren zijn die kunnen worden uitgebreid.

Voorbeeld:

arr := [5]int{1, 2, 3, 4, 5} // lengte en capaciteit zijn 5

slice := arr[1:3]             // lengte van de slice 2 (elementen met indices 1 en 2)
// capaciteit van de slice 4 (van index 1 tot het einde van de array)

fmt.Println(len(slice)) // 2
fmt.Println(cap(slice)) // 4

Dus, de lengte is de huidige grootte (aantal elementen), en de capaciteit is de maximale grootte zonder geheugenherverdeling.