Junior — Middle
Môžete vysvetliť, čo je to rez (slice) v programovaní a ako funguje?
sobes.tech AI
Odpoveď od AI
Reze (slice) v jazyku Go je dynamický, meniaci sa fragment poľa. Predstavuje štruktúru, ktorá obsahuje:
- ukazovateľ na prvý prvok poľa,
- dĺžku (počet prvkov v reze),
- kapacitu (maximálny počet prvkov, ktoré môže rez obsahovať bez prealokácie).
Rezy umožňujú pracovať s posloupnosťami prvkov bez potreby kopírovania dát.
Príklad vytvorenia a použitia rezu:
arr := [5]int{1, 2, 3, 4, 5}
slice := arr[1:4] // rez prvkov s indexmi 1,2,3
fmt.Println(slice) // [2 3 4]
slice = append(slice, 6) // pridáme prvok, ak je potrebné, alokuje sa nová pamäť
fmt.Println(slice) // [2 3 4 6]
Rezy sú užitočné, pretože môžu byť vytvorené z existujúcich, meniť ich veľkosť a odovzdávať ich funkciám bez kopírovania celého poľa.