Sobes.tech
Junior — Senior
52

Влияние append и изменения элементов на исходный слайс

Условие задачи

Рассмотрим пример, показывающий, как изменение элементов слайса и применение функции append внутри передаваемой функции отражаются на самом слайсе. Определите, какой вывод будет получен на каждом этапе выполнения программы.

func main() {
    mutate := func(a []int) {
        a[0] = 0
        a = append(a, 1)          // ?
        fmt.Println(a)            // ?
    }

    a := []int{1, 2, 3, 4}
    mutate(a)
    fmt.Println(a)                // ?
}