// 匿名函数的延迟执行
func AnonymityFunc() {
fmt.Println("程序开始")
defer func() {
fmt.Println("程序延迟调用")
}()
fmt.Println("程序结束")
/*
程序开始
程序结束
程序延迟调用
*/
}
// 返回值未设置变量名,那么返回值不可以修改
func Test() int {
var i int // 0
defer func() {
i++
fmt.Println(i)
fmt.Println("defer2:", i) //2
}()
defer func() {
i++
fmt.Println(i)
fmt.Println("defer1:", i) //1
}()
return i
/*
defer1: 1
defer2: 2
0
*/
}
// 返回值设置变量名,那么返回值将会获得修改
func Test1() (i int) {
defer func() {
i++
fmt.Println(i)
fmt.Println("defer2:", i) //2
}()
defer func() {
i++
fmt.Println(i)
fmt.Println("defer1:", i) //2
}()
return i
/*
1
defer1: 1
2
defer2: 2
2
*/
}
go语言的defer延迟执行
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- defer的执行顺序 在go语言当中,defer通常是在函数当中使用。当函数执行到最后一行代码(包括return)...