Junior — Middle
Zašto je važno uzeti u obzir kapacitet sličica prilikom rada sa nizovima u Go?
sobes.tech АИ
Одговор од АИ
U Go, slice-ovi su dinamičke strukture koje sadrže pokazivač na niz, dužinu i kapacitet. Kapacitet slice-a određuje koliko elemenata može da sadrži bez dodeljivanja nove memorije.
Važno je uzeti u obzir kapacitet jer:
- Kada dodajete elemente pomoću
append, ako dužina slice-a pređe kapacitet, dodeljuje se novi niz sa većim kapacitetom i podaci se kopiraju, što utiče na performanse. - Poznavanje kapaciteta omogućava efikasno upravljanje memorijom i izbegavanje nepotrebnih alokacija.
Primer:
s := make([]int, 0, 5) // dužina 0, kapacitet 5
fmt.Println(len(s), cap(s)) // 0 5
s = append(s, 1, 2, 3, 4, 5)
fmt.Println(len(s), cap(s)) // 5 5
s = append(s, 6) // kapacitet je pređen, dodeljuje se novi niz
fmt.Println(len(s), cap(s)) // 6 10 (otprilike)
Kontrolom kapaciteta, može se optimizovati rad sa slice-ovima.