Junior — Middle
Můžete vysvětlit, co je to řez (slice) v programování a jak funguje?
sobes.tech AI
Odpověď od AI
Řez (slice) v jazyce Go je dynamický, měnitelný fragment pole. Představuje strukturu, která obsahuje:
- ukazatel na první prvek pole,
- délku (počet prvků ve řezu),
- kapacitu (maximální počet prvků, které může řez obsahovat bez přerozdělení).
Řezy umožňují pracovat s posloupnostmi prvků bez nutnosti kopírování dat.
Příklad vytvoření a použití řezu:
arr := [5]int{1, 2, 3, 4, 5}
slice := arr[1:4] // řez prvků s indexy 1,2,3
fmt.Println(slice) // [2 3 4]
slice = append(slice, 6) // přidáme prvek, pokud je potřeba, alokuje se nová paměť
fmt.Println(slice) // [2 3 4 6]
Řezy jsou užitečné, protože lze vytvářet nové řezy z existujících, měnit jejich velikost a předávat je funkcím bez kopírování celého pole.