设为首页
收藏本站
开启辅助访问
全部
问与答
创意
技术
酷工作
生活
交易
资源
节点
飞墙
Follow
明白贴
报酬
登录
注册
飞社-令人惊奇的创意工作者社区-
›
首页
›
Go 编程语言
›
前端仔有点学不明白 golang 的 defer
FSHEX=FIND+SHARE+EXPRESS
飞社-令人惊奇的创意工作者社区- 是一个关于发现分享表达的地方
现在登录
没有账号?
立即注册
推荐主题
›
作为中国公民,为币圈交易所工作,领取报酬
›
轻量级 macOS Clash 菜单栏客户端
›
想问一下国内醫院的 it 崗位怎麼樣?
›
因为一张声卡,我无意体验到 thinkpad+arch
›
戒烟两年,我算是活明白了
今日热议主题
出 iphone13 白色 256G ios17.6.1
出山姆副卡, 2025/12/6 开通
慢收 MacBook air M1
出个 iPhone 16 Rro Max 256G, 保修到明年
求推荐可以逐帧播放并正确显示此 gif 动图
第一次做产品! 30 秒生成商用级 AI 视频,
你们是怎样解决 google antigravity 的“此
關於 infuse 輸出外接顯示器無法顯示字幕的
130 万行代码后,我想给每天陪我熬夜的 AI
随着 ai 的发展,未来是不是更多的人高兴的
显示全部
|
最新评论
22 条回复
·
2566 次点击
11#
NessajCN
小成
2025-4-1 17:51:26
https://go.dev/blog/defer-panic-and-recover "3. Deferred functions may read and assign to the returning function's named return values." 纯粹就是 named return 特性,死记就好了
12#
sardina
小成
2025-4-1 17:56:02
谁要在开发中这么写代码 小心被打
13#
zhengfan2016
楼主
小成
2025-4-1 18:00:55
@sardina 哈哈,我感觉你可以整理一个 awesome golang 容易挨打的代码片段,让新手村的 xdm 学习 https://i.imgur.com/agAJ0Rd.png
14#
vincentWdp
初学
2025-4-1 18:01:24
``` func foo(n int) (t int) { t = n ``` 换成 ``` func foo(n int) int { t := n ```
15#
ChrisFreeMan
小成
2025-4-1 18:01:45
@lesismal 看到你也不会我就放心了
16#
zhengfan2016
楼主
小成
2025-4-1 18:06:58
@NessajCN 原来如此
17#
sardina
小成
2025-4-1 18:07:30
第一个例子 return 是先把返回值存到临时变量里,然后 defer 再修改也改不到临时变量 第一个例子因为返回值有命名,所以 return 是把返回值存到这个命名里里,然后 defer 就可以修改了 总的来说就是 return 先设置返回值 然后再执行 defer ,然后函数返回 https://www.cnblogs.com/saryli/p/11371912.html 可以看这个
18#
peteretep
初学
2025-4-1 18:09:16
后端仔都不这么写的。不要起步就走犄角旮旯了。没有实际意义的。 这个和 c++考试 i++++ 、 ++i++ 的题目有什么区别吗? defer 只用来释放资源,其他使用正常的程序算法解决。
19#
maxwellz
小成
2025-4-1 18:14:50
@zhengfan2016 #7 貌似和 defer 的特性有关系了,这块太久没看了,忘了
20#
Liv1Dad
初学
2025-4-1 18:24:40
很简单啊,defer 放到 一个栈里面。 defer func() { t+=3}() 这个匿名函数 放入到栈中, 等 function 结束时运行。 第一个 函数返回 t, 函数结束后继续执行了 t+=3 。 第二个 函数返回 t 的值,数据结束后继续执行了 t+=3, 此时的 t 和函数返回结果 没有关系。
下一页 »
1
2
3
/ 3 页
下一页
返回顶部