延迟运行func中的指针问题

# 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
}