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