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