golang-9- defer

1、defer 语句会延迟函数的执行直到上层函数返回。延迟调用的参数会立刻生成,但是在上层函数返回前函数都不会被调用。


golang-9- defer

2、延迟的函数调用被压入一个栈中。当函数返回时, 会按照后进先出的顺序调用被延迟的函数调用。

<code>import "fmt"func main() {fmt.Println("counting")for i := 0; i < 10; i++ {defer fmt.Println(i)}fmt.Println("done")}/<code>
golang-9- defer

3、defer后面必须是函数调用语句,不能是其他语句,否则编译器会出错


golang-9- defer


4、defer用途:

<code>1. 关闭文件句柄2. 锁资源释放3. 数据库连接释放/<code>


分享到:


相關文章: