Sobes.tech
Junior — Middle

A küldött listán végrehajtott változtatások globálisan megjelennek ebben a profilban?

sobes.tech MI

Válasz az MI-től

Go nyelvben, ha egy szeletet (slice) adsz át egy függvénynek, és módosítod annak elemeit, ezek a módosítások kívülről is láthatók lesznek, mivel a szelet egy mutatót tartalmaz az adatok tömbjére.

Azonban, ha a függvényen belül módosítod a szeletet magát (például, új szeletet rendel hozzá), az nem fog hatással lenni a külső eredeti szeletre.

Példa:

func modifySlice(s []int) {
    s[0] = 100 // módosítja az eredeti szelet elemet
    s = append(s, 200) // módosítja a helyi másolatot, nem az eredetit
}

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

Ezért, a szelet elemeinek módosítása globálisan tükröződik, de a szelet maga módosítása nem.