翔云

Just try, don't shy. 最新文章请点击
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

golang defer的使用

Posted on 2018-01-27 11:05  翔云123456  阅读(145)  评论(0编辑  收藏  举报

defer一般用于在函数结束时执行必要的处理工作。例如,关闭文件描述符,关闭网络连接等等。

函数中可以定义多个defer,执行的时候按照先进后出的顺序。

defer定义的语句,即使遇到panic,也会执行。

下面简单举例说明用法:

package main


import (
        "fmt"

)

func main() {

        defer func(){

                fmt.Println("defer end...")

        }()

        fmt.Println("start...")
        panic("test here")

}

ouput:

start...
defer end...
panic: test here

goroutine 1 [running]:
main.main()
D:/work/go_exercise/t.go:25 +0x104