用法

  1. defer 语句

作用

在当前函数执行完毕后,依次调用。
(方法栈)

示例

  1. package main
  2. import "fmt"
  3. func do() {
  4. defer fmt.Println("Hello:1")
  5. defer fmt.Println("Hello:2")
  6. defer fmt.Println("Hello:3")
  7. fmt.Println("Hello,World!")
  8. }
  9. func main() {
  10. do()
  11. }
  1. Hello,World!
  2. Hello:3
  3. Hello:2
  4. Hello:1

注意

  • defer仅在函数即将结束时调用
  • defer就是一个入栈的过程
  • 函数结束后按照出栈顺序执行defer内容
  • return语句先执行,defer后执行