17_defer(延迟调用)关键字的使用
2024-08-31 18:09:11
1、defer是延迟调用关键字,只能在函数内部使用
2、总是在main函数结束前调用(和init用法相对)
3、如果有多个defer 遵循先进后出的原则
4、和匿名函数同时使用时,如果匿名函数带有参数,则先把参数传进去,最后调用
例如: package main
import "fmt"
func Test() {
defer fmt.Println("111111") //最后执行
defer fmt.Println("222222") //其次
defer fmt.Priiota_test.gontln("333333") //最先执行这个
}
func main() {
a := 1
b := 2
defer fmt.Println(a, b) //1,2 先把参数传进去,然后执行后面的程序,最后在main函数结束前执行这个
defer func(a, b int) {
fmt.Printf("a1=%d,b1=%d\n", a, b)
}(a, b) //先把参数传进去,最后按顺序执行defer语句
a = 4
b = 6
fmt.Println("a=", a, "b=", b)
Test()
} 运行结果:
最新文章
- Android程序中--不能改变的事情
- UML大战需求分析——阅读笔记06
- hibernate中表关系为多对多时,如何只删除中间表数据
- 解决ORA-14450:试图访问已经在使用的事务处理临时表
- BSON 1.0版本规范(翻译)
- jqury.jqzoom插件--放大镜
- priority_queue C++
- Android反向工程需要的几个软件
- SpotMini末端控制策略
- 学习AJAX(二)
- 天坑 之 java web servlet+jsp项目 配置后 404 (MyEclipse转eclipse)
- 笔试题引出float数据的存储方式的深究
- 201521123011 《Java程序设计》 第二周学习总结
- Java中栈的应用,括号匹配
- UVA11846-Finding Seats Again(DFS)
- 洛谷P4705 玩游戏 [生成函数,NTT]
- 虚存管理页面置换算法 — FIFO和RUL算法模拟实现
- springmvc后台接前端的参数,数组,集合,复杂对象等
- OpenStack 创建虚机过程简要汇总
- git命令--git checkout 之 撤销提交到暂存区的更改