无题
2022-4-21 实习Day19
1、新贸金账户行关联表信息配置 –3小时 80%
2、新贸金系统汇出汇款业务手动测试。–3小时 80%
Golang编程学习(part 15)
1、函数的defer
在函数中,程序员经常需要创建资源(比如:数据库连接、文件句柄、锁等),为了在函数执行完毕后及时的释放资源,Go的设计者提供defer(延时机制)
1 | package main |
2、defer的注意事项和细节
① 当go执行到一个defer时,不会立即执行defer后的语句,而是将defer后面的语句压入到一个栈中,然后继续执行函数下一个语句
② 当函数执行完毕后,再从defer栈中依次从栈顶取出语句执行(注:遵循先入后出的机制)
③ 在defer将语句放入到栈时,也会将相关的值拷贝同时入栈
1 | package main |
3、defer的最佳实践
defer最主要的价值是在,当函数执行完毕后,可以及时的释放函数创建发资源
① 在golang编程中通常做法是,创建资源后,比如(打开了文件,获取了数据库连接,或者是锁资源),可以执行 defer file.Close() defer connect.Close()
② 在defer后,可以继续使用创建资源
③ 当函数完毕后,系统会依次从defer栈中,取出语句,关闭资源
④ 这种机制,非常简洁,程序员不用再为在什么时机关闭资源而烦心
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 KAZAMAのBlog!


