用法
defer 语句
作用
在当前函数执行完毕后,依次调用。
(方法栈)
示例
package main
import "fmt"
func do() {
defer fmt.Println("Hello:1")
defer fmt.Println("Hello:2")
defer fmt.Println("Hello:3")
fmt.Println("Hello,World!")
}
func main() {
do()
}
Hello,World!
Hello:3
Hello:2
Hello:1
注意
- defer仅在函数即将结束时调用
- defer就是一个入栈的过程
- 函数结束后按照出栈顺序执行defer内容
- return语句先执行,defer后执行