十一、GO语言的defer

在任意函数中都可以使用defer关键字来延时处理某些操作

 

1、当执行到defer时,暂时不会执行defer后面的语句,会将defer后面的语句压入到独立的栈中

2、当函数执行完毕后,再从defer栈按照先进后出的方式出栈执行

3、在defer语句放入到栈时,也会将相关的值拷贝同时入栈

 输出结果

在38行语句修改了n1的值,但是36行输出的值依然是修改之前的值(对应上面第3点)

 

实践

defer file.Close()   //关闭文件流

defer connect.Close() //关闭数据库连接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章