Junior — Middle
Lehet-e módosítani a program futása közben a szeletként átadott tömb tartalmát?
sobes.tech MI
Válasz az MI-től
Igen, a tömb tartalma, amit szeletként adnak át, futás közben módosítható. A Go-ban a szelet egy olyan struktúra, amely egy mutatót tartalmaz egy tömbre, egy hosszúságot és egy kapacitást. A szelet elemeinek módosítása tükröződik az eredeti tömbben, mivel a szelet a tömb adataira mutat.
Példa:
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) // Kiírja: [100 2 3]
}
Ezért a szelet módosítása az eredeti tömböt is módosítja.