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