Junior — Middle
Будут ли изменения, внесённые в переданный список, отображаться глобально в этом профиле?
sobes.tech AI
Answer from AI
In Go, if you pass a slice to a function and modify its elements, these changes will be visible outside the function because a slice contains a pointer to the data array.
However, if you modify the slice itself inside the function (for example, assign a new slice), it will not affect the original slice outside the function.
Example:
func modifySlice(s []int) {
s[0] = 100 // will change the element of the original slice
s = append(s, 200) // will change the local copy of the slice, not the external one
}
func main() {
slice := []int{1, 2, 3}
modifySlice(slice)
fmt.Println(slice) // will print [100 2 3]
}
Thus, changes to the elements of the slice are reflected globally, but changing the slice itself is not.