对golang中defer的理解
defer是golang中的延迟调用函数,在return之后调用,但实际运用中还是比较难理解的。
理解1:传给defer模块函数的实参会在定义时生成备份
如果内部使用的值不是通过形参传递,比如直接引用defer模块外部已经定义好的值,则不会生成备份。
仔细看下面三个函数:
package main
import "fmt"
func c() {
i := 0
defer fmt.Println("c1:",i)
i++
defer fmt.Println("c2:",i)
}
func cc()
原创
2020-07-25 04:05:18 ·
295 阅读 ·
0 评论