defer 函数可以影响宿主函数的返回值
看代码:

调用:

输出:

结果又让人意外了。
coo1:因为传引用,return 时 i = 100, return 返回的也是 100,return 执行之后执行 defer 将 i 变为 300,故,i = 300,r = 100
coo2:因为传引用,return 时 i = 100, return 执行后 defer 将 r 变为 300,然后返回,故,i = 100, r = 300。其实 defer 的 r 可以理解为就是 i
总结:defer 函数只有在操作宿主函数的返回值后才会影响宿主的返回结果
本文探讨了defer函数如何在Go语言中影响宿主函数的返回值。通过具体示例,解析了当defer操作引用类型时,如何改变返回值的行为。强调了defer函数在特定条件下才能影响宿主函数的返回结果。
1476

被折叠的 条评论
为什么被折叠?



