Golang defer
defer 作用:
- 作为函数的进入与退出的log日志:// Test project main.go
- 代码如下
12345678910111213141516171819<em>
package
main
import
(
"fmt"
)
func
begin(funName string) string {
fmt.Println(
"Enter Function"
)
return
funName
}
func
end(funName string) string {
fmt.Println(
"Leave Function"
)
return
funName
}
func
record() {
fmt.Println(
"Run Function"
)
}
func
main(){
defer
end(begin(
"func"
))
record()
}<br>输出为:<br></em><em id=
"__mceDel"
>Enter Function</em><em>Run Function</em><em id=
"__mceDel"
>Leave Function</em>
- 代码如下
- 作为异常处理和文件关闭的处理函数。
- 匿名函数和命名函数都可以作为defer的延迟函数。
- 多个defer语句之间的顺序是先进后出的。
- defer语句可以有返回值,但是这个返回值是没有意义的。
- 匿名函数的操作对象如果会被返回,则该defer是会对返回值有影响的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从零实现富文本编辑器#3-基于Delta的线性数据结构模型
· 记一次 .NET某旅行社酒店管理系统 卡死分析
· 长文讲解 MCP 和案例实战
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
· 一天 Star 破万的开源项目「GitHub 热点速览」
· 瞧瞧别人家的日期处理,那叫一个优雅!
· 使用TypeScript开发微信小程序(云开发)-入门篇
· 没几个人需要了解的JDK知识,我却花了3天时间研究
· 定时任务稳定性解决方案-healthchecks监控系统