Sobes.tech
Junior — Middle

Kas saadetud nimekirjas tehtud muudatused kuvatakse sellel profiilil globaalselt?

sobes.tech AI

Vastus AI-lt

Go keeles, kui sa annad lõigu (slice) funktsioonile ja muudad selle elemente, siis need muudatused on nähtavad väljaspool funktsiooni, kuna lõik sisaldab viidet andmetele massiivis.

Kuid, kui funktsiooni sees muudad lõiku ise (näiteks määrates sellele uue lõigu), siis see ei mõjuta algset lõiku väljaspool funktsiooni.

Näide:

func modifySlice(s []int) {
    s[0] = 100 // muudab algse lõigu elementi
    s = append(s, 200) // muudab kohaliku koopiat, mitte välise
}

func main() {
    slice := []int{1, 2, 3}
    modifySlice(slice)
    fmt.Println(slice) // Kuvab [100 2 3]
}

Seega, lõigu elementide muudatused kajastuvad globaalselt, kuid lõigu enda muutmine — mitte.