最近在学习golang 发现程序panic使用recover捕获,返回值被坑了。
在网上看到篇文章:https://studygolang.com/articles/4809
两个结论:
-
多个defer的执行顺序为“后进先出”;
-
defer、return、返回值三者的执行逻辑应该是:return最先执行,return负责将结果写入返回值中;接着defer开始执行一些收尾工作;最后函数携带当前返回值退出。
有疑问加站长微信联系(非本文作者)
最近在学习golang 发现程序panic使用recover捕获,返回值被坑了。
在网上看到篇文章:https://studygolang.com/articles/4809
两个结论:
多个defer的执行顺序为“后进先出”;
defer、return、返回值三者的执行逻辑应该是:return最先执行,return负责将结果写入返回值中;接着defer开始执行一些收尾工作;最后函数携带当前返回值退出。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
最近在学习golang 发现程序panic使用recover捕获,返回值被坑了。
在网上看到篇文章:https://studygolang.com/articles/4809
两个结论:
多个defer的执行顺序为“后进先出”;
defer、return、返回值三者的执行逻辑应该是:return最先执行,return负责将结果写入返回值中;接着defer开始执行一些收尾工作;最后函数携带当前返回值退出。