Junior — Middle
U kojim situacijama u programskom jeziku dolazi do automatskog povećanja veličine dinamičkog niza (slice)?
sobes.tech АИ
Одговор од АИ
U Go, rez (slice) je struktura koja sadrži pokazivač na niz, dužinu i kapacitet. Veličina reza se automatski povećava kada dodajete elemente pomoću funkcije append, a trenutna dužina reza dostiže njegov kapacitet.
U tom trenutku, dodeljuje se novi niz sa povećanim kapacitetom (obično duplo većim od prethodnog), stari elementi se kopiraju u novi niz, i pokazivač reza se ažurira na taj novi niz. Ovo omogućava da se rez dinamički širi dodavanjem elemenata.
Primer:
s := make([]int, 0, 2) // dužina 0, kapacitet 2
s = append(s, 1) // dužina 1, kapacitet 2
s = append(s, 2) // dužina 2, kapacitet 2
s = append(s, 3) // dužina 3, kapacitet povećan, na primer, na 4
Takođe, veličina se automatski povećava pri dodavanju elemenata kada dužina dostigne kapacitet reza.