defer延迟执行
代码
package test
import "fmt"
func deferUtil() func(int) int {
i := 0
return func(n int) int {
fmt.Printf("本次调用接收到n=%v\n", n)
i++
fmt.Printf("匿名工具函数被第%v次调用\n", i)
return i
}
}
func Defer1() int {
f := deferUtil()
defer f(1)
return f(2)
}
func Defer2() int {
f := deferUtil()
defer f(f(3))
return f(2)
}
func Defer() int {
f := deferUtil()
f(1)
return f(2)
}
func DeferRecover() {
defer func() {
err := recover()
if err != nil {
fmt.Println(err)
}
}()
n := 0
fmt.Println(3 / n)
}
package main
import (
"GoExample/test"
"fmt"
)
func main() {
test.DeferRecover()
fmt.Println("test.DeferRecover()之后还在运行....")
}
本博客参考自:
https://www.bilibili.com/video/BV1s341147US/?spm_id_from=333.337.search-card.all.click&vd_source=a642bb3ddc5b706845426dc41d73fbda
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!