Sobes.tech
Junior — Middle

Je možné počas behu programu meniť obsah poľa, ktoré bolo odovzdané ako slice?

sobes.tech AI

Odpoveď od AI

Áno, obsah poľa, ktoré je odovzdané ako slice, je možné počas behu programu meniť. Slice v Go je štruktúra, ktorá obsahuje ukazovateľ na pole, dĺžku a kapacitu. Zmeny v prvkoch slice sa odrážajú v pôvodnom poli, pretože slice ukazuje na jeho dáta.

Príklad:

package main
import "fmt"

func modifySlice(s []int) {
    s[0] = 100
}

func main() {
    arr := [3]int{1, 2, 3}
    slice := arr[:]
    modifySlice(slice)
    fmt.Println(arr) // Vypíše: [100 2 3]
}

Týmto spôsobom zmena slice mení aj pôvodné pole.