Junior — Middle
Ako sa odovzdáva rez (slice) do funkcie v programovacom jazyku?
sobes.tech AI
Odpoveď od AI
V jazyku Go je rez (slice) odovzdan funkcii hodnotou, ale kopíruje sa iba štruktúra rezu, ktorá obsahuje ukazovateľ na pole, dĺžku a kapacitu. To znamená, že zmeny prvkov rezu vo vnútri funkcie sa prejavia na pôvodnom poli, pretože ukazovateľ ukazuje na tie isté dáta.
Príklad:
func modifySlice(s []int) {
s[0] = 100 // zmení prvý prvok pôvodného rezu
}
func main() {
arr := []int{1, 2, 3}
modifySlice(arr)
fmt.Println(arr) // Vypíše: [100 2 3]
}
Týmto spôsobom je odovzdanie rezu do funkcie efektívne a umožňuje meniť obsah poľa, na ktoré odkazuje.