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