go语言中的defer
defer的词义: 延迟 推迟
在go语言中,使用defer关键字来延迟一个函数或者方法的执行
1. defer 函数或方法 一个函数或方法会被延迟执行
2. defer的使用
A 对象文件的close 临时文件的删除
B go语言中关于异常的处理,使用panic 和recover
panic函数引发的恐慌 导致程序中断执行
recover函数用于恢复程序的执行recover()语法上要求必须在defer中执行
3. 如果多个defer函数
倒序调用 最后defer调用的最先被调用
package mainimport "fmt"func main() {/*defer的词义: 延迟 推迟在go语言中,使用defer关键字来延迟一个函数或者方法的执行1. defer 函数或方法 一个函数或方法会被延迟执行2. defer的使用A 对象文件的close 临时文件的删除B go语言中关于异常的处理,使用panic 和recoverpanic函数引发的恐慌 导致程序中断执行recover函数用于恢复程序的执行recover()语法上要求必须在defer中执行3. 如果多个defer函数倒序调用 最后defer调用的最先被调用*/defer testDeferPrint("defer test1")defer testDeferPrint("defer test2")fmt.Println("这里先打印,最后执行defer关键字后面调用的函数")//fmt.Println("defer demo")
}func testDeferPrint(testStr string) {fmt.Println(testStr)
}
package mainimport "fmt"func main() {/*4. defer函数传参数的时候defer 函数在调用的时候已经传递参数了,只是代码没有执行而已5. defer函数注意点*/a := 2fmt.Println(a)defer func2(a)a++fmt.Println(a)}//
func func2(a int) {fmt.Println("defer 打印 a = ", a)
}
go语言中的defer相关推荐
- go语言中的defer、panic、recover处理异常
go语言中的defer就像c++中的析构函数,但是go语言中defer的对象是函数(或者对象的方法),defer能保证在函数结束最后执行该方法(函数),但是有例外:如果在定义的方法中defer定义的方 ...
- Go语言中 defer 的用法
文章目录 Go语言中 defer 的用法 一.defer触发时机 二.defer执行逻辑 1. 多个defer语句按先进后出的方式执行 2.defer声明时,对应的参数会实时解析 3.defer.re ...
- go语言中channel的创建和销毁以及匿名函数的使用
channel的创建 go语言中,任意类型前面加上关键字chan即可声明对应类型的通道,创建通道需要使用make,make也用于map 和slice的创建 创建一个通道 /*刚创建的通道是nil*/ ...
- go语言中error的分类与用法
go语言中error的分类与用法 原文引用:极客时间中的课程<Go error处理最佳实践> 前言:本文要讨论的就是go中error的基本原理/类型,以及最重要的几个问题: go代码开发中 ...
- c语言中用两个n表示什么格式,C语言中‘\n'为什么能表示CRLF两个字节
为什么要说这个简单的问题? 众所周知,在Windows下文本文件的换行符是CRLF,占两个字节.在Unix下是LF,占一个字节.(还有奇葩的Mac是CR).但是C语言中直接printf一个 '\n', ...
- Go语言中的goroutine
目录 Go并发优势 goroutine goroutine定义 线程和协程的区别 创建goroutine runtime包 Gosched() Goexit() GOMAXPROCS() Go并发优势 ...
- Go语言中的JSON处理 【Go语言圣经笔记】
JSON JavaScript对象简谱(JSON, Java Script Object Notation)是一种用于发送和接收结构化信息的标准协议.在类似的协议中,JSON并不是唯一的一个标准协议. ...
- c语言中struct和c++中class实例对比
前言 实现游戏中简单的打怪升级的功能 c语言中的struct #include <stdio.h>typedef void(*Train)(struct player*, int); ty ...
- 关于C语言中printf函数“输出歧视”的问题
目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...
最新文章
- 【QT】Qtcreator的设计模式中将控件提升为自定义的控件
- 怎么保证缓存和数据库一致性
- C++ UTF8和UTF16互转代码
- MFC单文档框架编程(二): SDI框架下的消息处理
- 常用开源工具、框架收藏
- 安卓案例:利用定时器实现逐帧动画
- C++ 多字节与宽字符串的相互转换
- FreeRTOS基本教程零:STM32 FReeRTOS 移植流程
- java计算机毕业设计网上图书销售系统源程序+mysql+系统+lw文档+远程调试
- 汇编语言(第四版)(个人复习点)
- 流动时代消费链路离散化下广告设计的衍变方向【学习笔记】
- 美团优选总显示服务器403,最新提示!美团优选商家端登录入口
- 画图软件修改图片分辨率
- 【api】添加了权限管理的一部分
- 网络安全——渗透综合实验
- 英语学习APP—百词斩
- pc 端与移动端区分点击与拖拽事件
- 中关村高新技术企业名单
- 常用的博客社区(续)
- 豆瓣前250个电影的相关分析