Junior — Middle
Čo znamená vlastnosť capacity u slice v Go, ak pri jeho vytváraní nie je výslovne uvedená?
sobes.tech AI
Odpoveď od AI
V jazyku Go je rez (slice) štruktúra, ktorá obsahuje ukazovateľ na pole, dĺžku (len) a kapacitu (capacity).
Ak pri vytváraní rezu nie je kapacita výslovne uvedená, nastaví sa rovná dĺžke rezu. Kapacita ukazuje, koľko prvkov môže rez obsahovať bez alokácie novej pamäti.
Napríklad:
s := make([]int, 3) // len=3, cap=3
Tu je kapacita 3, pretože nie je uvedená osobitne.
Ak je kapacita väčšia ako dĺžka, rez sa môže rozšíriť na kapacitu bez alokácie nového poľa.