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