一个函数传参一个 slice,先 append 再赋值和另一个函数先赋值再append,哪个会发生变化?
题目来源:字节跳动
答案:
package main
import "fmt"
func BeforeAppend(s []int) []int {
s = append(s, 1)
s = []int{1, 2, 3}
return s
}
func AfterAppend(s []int) []int {
s = []int{1, 2, 3}
s = append(s, 1)
return s
}
func main() {
s := make([]int, 0)
fmt.Println(BeforeAppend(s))
fmt.Println(AfterAppend(s))
}