Junior — Senior
62
Корректировка поведения срезов в Go
Компании, где спрашивали:
Lamoda Tech
Условие задачи
Необходимо изменить приведённый пример так, чтобы функция foo изменяла переданный ей срез, а результат вызова append сохранялся после выхода из функции.
package main
import "fmt"
func foo(src *[]int) {
*src = append(*src, 5)
}
func main() {
arr := []int{1, 2, 3}
src := arr[:1]
foo(&src)
fmt.Println(src) // [1 5]
fmt.Println(arr) // [1 2 3] — arr не изменяется, так как src отрезан от него
}