go 匿名函数

匿名函数

匿名函数是指不需要定义函数名的一种函数实现方式。

func main()  {
    i := 1

    go func() {
        time.Sleep(100*time.Millisecond)
        fmt.Println("i =", i)
    } ()

    i++
    time.Sleep(1000*time.Millisecond)
}

输出
i= 2

这就说明了闭包内取外部函数的参数的时候是取的地址,而不是调用闭包时刻的参数值.

匿名函数参数

func main()  {
    i := 1

    go func(i int) {
        time.Sleep(100*time.Millisecond)
        fmt.Println("i =", i)
    } (i)

    i++
    time.Sleep(1000*time.Millisecond)
}
输出:
i = 1

匿名函数可以通过参数把值传进去

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×