(十八)golang--defer关键字
在函数中,程序员经常需要创建资源(比如,数据库连接,文件句柄,锁等),为了在函数执行完毕后,及时释放资源,go设计者提供defer(延时机制)
用defer申明的语句不会立即执行,而是被存入到defer栈中,在程序执行完毕后,再从栈中取出(先进后出):
需要注意的是,如果defer中存在值,会将相应值的拷贝同入栈:
defer主要的价值是当函数执行完毕后,可以及时的释放函数创建的资源:
在函数中,程序员经常需要创建资源(比如,数据库连接,文件句柄,锁等),为了在函数执行完毕后,及时释放资源,go设计者提供defer(延时机制)
用defer申明的语句不会立即执行,而是被存入到defer栈中,在程序执行完毕后,再从栈中取出(先进后出):
需要注意的是,如果defer中存在值,会将相应值的拷贝同入栈:
defer主要的价值是当函数执行完毕后,可以及时的释放函数创建的资源: