Junior — Middle
Koliko elemenata i kakvu kapacitetu će imati slice nakon dodavanja jednog elementa ako on na početku nije bio inicijalizovan?
sobes.tech АИ
Одговор од АИ
Ako slice u Go-u inicijalno nije inicijalizovan (tj. jednak je nil), i dodate mu jedan element pomoću funkcije append, tada:
- Broj elemenata (len) nakon dodavanja biće 1.
- Kapacitet (cap) zavisi od implementacije, ali obično počinje sa malom kapacitetom, na primer 1 ili 2.
Primer:
var s []int // nil-slice
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // obično >= 1
Tako, pri dodavanju prvog elementa u nil-slice u Go-u, Go automatski dodeljuje memoriju za novi slice sa kapacitetom dovoljnim za čuvanje tog elementa.