
# package main
import "fmt"
func main() {
origin := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
s := func(i int) func() {
return func() {
fmt.Println(">>>>>>>>>>>>>", i)
}
}(origin[9])
origin[9] = 10
s() // output: >>>>>>>>>>>>> 9
origin = append([]int{-1}, origin...)
s() // output: >>>>>>>>>>>>> 9
s2 := func(i *int) func() {
return func() {
fmt.Println(">>>>>>>>>>>>>>", *i)
}
}(&(origin[9]))
s2() // output: >>>>>>>>>>>>> 8
origin[9] = 9
s2() // output: >>>>>>>>>>>>> 9
}




近期评论