// 匿名函数的延迟执行
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
*/
}
网友评论