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.