Junior — Middle
Co se stane s délkou a kapacitou řezu, pokud do něj přidáme 10 prvků, když je původně prázdný?
sobes.tech AI
Odpověď od AI
Pokud máte v Go prázdný řez (délka a kapacita jsou 0) a přidáte do něj 10 prvků pomocí funkce append, pak:
- Délka řez je 10 — počet přidaných prvků.
- Kapacita řez bude automaticky zvětšena, obvykle s rezervou, aby se zabránilo častým přesunům paměti. Přesná kapacita závisí na implementaci, ale často bude 16 nebo více, aby pojala nové prvky a měla rezervu pro budoucí přidání.
Příklad:
var s []int // prázdný řez
s = append(s, make([]int, 10)...) // přidáme 10 prvků
fmt.Println(len(s)) // 10
fmt.Println(cap(s)) // >=10, obvykle 16 nebo 20
Tímto způsobem se kapacita dynamicky zvětšuje, aby efektivně spravovala paměť při růstu řezů.