用法
defer 语句
作用
在当前函数执行完毕后,依次调用。
(方法栈)
示例
package mainimport "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:3Hello:2Hello:1
注意
- defer仅在函数即将结束时调用
- defer就是一个入栈的过程
- 函数结束后按照出栈顺序执行defer内容
- return语句先执行,defer后执行
