go语言-defer

笔记 / 2021-03-14

用法

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后执行