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