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