Junior — Middle
Môžete vysvetliť princíp fungovania rezov (slice) v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
Rezanec (slice) v jazyku Go je dynamický, meniaci sa pohľad na sekvenciu prvkov rovnakého typu. Obsahuje:
- ukazovateľ na pole,
- dĺžku (počet prvkov v reze),
- kapacitu (maximálny počet prvkov, ktoré môže obsahovať bez alokácie novej pamäti).
Rezanec umožňuje pracovať s časťami polí alebo vytvárať nové dynamické sekvencie bez kopírovania dát.
Príklad:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // rez prvkov s indexmi 1,2,3: [2 3 4]
fmt.Println(s) // [2 3 4]
s = append(s, 6) // pridá prvok, ak kapacita dovolí, rez sa rozšíri
Rezanec je užitočný, pretože umožňuje efektívne pracovať s dátami, bez kopírovania polí, a dynamicky meniť veľkosť sekvencie.