defer

defer 语句会将函数推迟到外层函数返回之后执行。

推迟调用的函数其参数会立即求值,但直到外层函数返回前该函数都不会被调用。

defer.go

  1. package main
  2. import "fmt"
  3. func main() {
  4. defer fmt.Println("world")
  5. fmt.Println("hello")
  6. }