Junior — Middle
Můžete vysvětlit princip fungování řezů (slice) v programovacím jazyce?
sobes.tech AI
Odpověď od AI
Řez (slice) v jazyce Go je dynamický, měnitelný pohled na sekvenci prvků stejného typu. Obsahuje:
- ukazatel na pole,
- délku (počet prvků v řezu),
- kapacitu (maximální počet prvků, které lze uložit bez alokace nové paměti).
Řezy umožňují pracovat s částmi polí nebo vytvářet nové dynamické sekvence bez kopírování dat.
Příklad:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // řez prvků s indexy 1,2,3: [2 3 4]
fmt.Println(s) // [2 3 4]
s = append(s, 6) // přidá prvek, pokud kapacita dovolí, řez se rozšíří
Řezy jsou užitečné, protože umožňují efektivně pracovat s daty, aniž by kopírovaly pole, a dynamicky měnit velikost sekvence.