Sobes.tech
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.