Junior — Middle
Jaké množství prvků a jakou kapacitu bude mít slice po přidání jednoho prvku, pokud nebyl na začátku inicializován?
sobes.tech AI
Odpověď od AI
Pokud je slice v Go zpočátku neinicializovaný (tedy je roven nil), a přidáte do něj jeden prvek pomocí funkce append, pak:
- Počet prvků (len) po přidání bude 1.
- Kapacita (cap) závisí na implementaci, ale obvykle začíná s malou kapacitou, například 1 nebo 2.
Příklad:
var s []int // nil-slice
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // obvykle >= 1
Tímto způsobem, při přidání prvního prvku do nil-slice v Go, Go automaticky alokuje paměť pro nový slice s dostatečnou kapacitou pro uložení tohoto prvku.