Golang Defer三原则

1.当defer被声明时,其参数就会被实时解析

func a() {
i := 0
defer fmt.Println(i)
i++
return
}

2. defer执行顺序为先进后出

func b() {
for i := 0; i < 4; i++ {
defer fmt.Print(i)
}
}

3.defer可以读取有名字的返回值

func c() (i int) {
defer func() { i++ }()
return 1
}

原文

猜你喜欢

转载自blog.csdn.net/LightUpHeaven/article/details/82257693