Junior — Middle
Ako sa vykonáva rezervácia pamäte pre slice v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
V jazyku Go je rez (slice) štruktúra, ktorá obsahuje ukazovateľ na pole, dĺžku a kapacitu. Pri vytváraní rezu sa pamäť pre prvky rezervuje v poli, na ktoré ukazuje.
Keď je rez vytvorený pomocou funkcie make, napríklad make([]int, length, capacity), je alokované pole s uvedenou kapacitou. Ak pri pridávaní prvkov kapacita prekročí, Go automaticky alokuje nové, väčšie pole, skopíruje dáta a aktualizuje ukazovateľ rezu.
Príklad:
s := make([]int, 0, 5) // rez s dĺžkou 0 a kapacitou 5
s = append(s, 1, 2, 3) // pridanie prvkov
Týmto spôsobom je pamäť rezervovaná vopred pre stanovenú kapacitu, čo zvyšuje efektívnosť pri pridávaní prvkov.