(十八)golang--defer关键字

在函数中,程序员经常需要创建资源(比如,数据库连接,文件句柄,锁等),为了在函数执行完毕后,及时释放资源,go设计者提供defer(延时机制)

 用defer申明的语句不会立即执行,而是被存入到defer栈中,在程序执行完毕后,再从栈中取出(先进后出):

 需要注意的是,如果defer中存在值,会将相应值的拷贝同入栈:

 defer主要的价值是当函数执行完毕后,可以及时的释放函数创建的资源:

原文地址:https://www.cnblogs.com/xiximayou/p/11889450.html