Junior — Middle
Aké množstvo prvkov a akú kapacitu bude mať slice po pridaní jedného prvku, ak pôvodne nebol inicializovaný?
sobes.tech AI
Odpoveď od AI
Ak je slice v Go na začiatku neinitializovaný (t.j. je rovný nil), a pridáte do neho jeden prvok pomocou funkcie append, potom:
- Počet prvkov (len) po pridaní bude 1.
- Kapacita (cap) závisí od implementácie, ale zvyčajne začína s malou kapacitou, napríklad 1 alebo 2.
Príklad:
var s []int // nil-slice
s = append(s, 10)
fmt.Println(len(s)) // 1
fmt.Println(cap(s)) // zvyčajne >= 1
Takže, pri pridávaní prvého prvku do nil-slice v Go, Go automaticky pridelení pamäť pre nový slice s dostatočnou kapacitou na uloženie tohto prvku.