采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
如题
defer是做扫尾工作,在最后执行的,在出错后才进行的
那也需要程序能走到defer语句才行吧
defer是程序在函数生命周期结束后栈退出的时候执行的,实际上是把其他语言的函数栈回收工作在golang里面开放给用户自己实现了而已。因此即使出错了defer也会在函数退出的时候被调用,而且是LIFO的顺序。甚至在panic的时候,函数最后也会正常调用defer。 具体可以参考这篇博客 https://blog.golang.org/defer-panic-and-recover
defer语句必须执行过,才会被最终调用,这个老师整个项目的defer放的位置都不对,可能是他一直用错了没人指出来吧
登录后可查看更多问答,登录/注册
从零开始,全面掌握Go语言编码的架构风格和开发Web的关键技能
1.2k 13
1.3k 8
1.4k 7
858 7
2.0k 7