Sobes.tech
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.