Sobes.tech
Junior — Middle

Worden de wijzigingen die in de verzonden lijst zijn aangebracht, globaal weergegeven in dit profiel?

sobes.tech AI

Antwoord van AI

In Go, als je een slice doorgeeft aan een functie en de elementen ervan wijzigt, zijn deze wijzigingen zichtbaar buiten de functie, omdat de slice een pointer bevat naar de gegevens in de array.

Echter, als je binnen de functie de slice zelf wijzigt (bijvoorbeeld door een nieuwe slice toe te wijzen), heeft dit geen invloed op de oorspronkelijke slice buiten de functie.

Voorbeeld:

func modifySlice(s []int) {
    s[0] = 100 // wijzigt het element van de originele slice
    s = append(s, 200) // wijzigt de lokale kopie van de slice, niet de externe
}

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

Dus, wijzigingen aan de elementen van de slice worden globaal weerspiegeld, maar het wijzigen van de slice zelf niet.