GO语言延迟函数defer用法分析
本文实例讲述了GO语言延迟函数defer用法。分享给大家供大家参考。具体分析如下:
defer在声明时不会立即执行,而是在函数return后,再按照FILO(先进后出)的原则依次执行每一个defer,一般用于异常处理、释放资源、清理数据、记录日志等。这有点像面向对象语言的析构函数,优雅又简洁,是Golang的亮点之一。
代码1:了解defer的执行顺序
packagemain
import"fmt"
funcfn(nint)int{ deferfunc(){ n++ fmt.Println("3st:",n) }()
deferfunc(){ n++ fmt.Println("2st:",n) }()
deferfunc(){ n++ fmt.Println("1st:",n) }()
returnn//没有做任何事情 }
funcmain(){ fmt.Println("函数返回值:",fn(0)) }