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相关推荐

  1. go语言中的defer、panic、recover处理异常

    go语言中的defer就像c++中的析构函数,但是go语言中defer的对象是函数(或者对象的方法),defer能保证在函数结束最后执行该方法(函数),但是有例外:如果在定义的方法中defer定义的方 ...

  2. Go语言中 defer 的用法

    文章目录 Go语言中 defer 的用法 一.defer触发时机 二.defer执行逻辑 1. 多个defer语句按先进后出的方式执行 2.defer声明时,对应的参数会实时解析 3.defer.re ...

  3. go语言中channel的创建和销毁以及匿名函数的使用

    channel的创建 go语言中,任意类型前面加上关键字chan即可声明对应类型的通道,创建通道需要使用make,make也用于map 和slice的创建 创建一个通道 /*刚创建的通道是nil*/ ...

  4. go语言中error的分类与用法

    go语言中error的分类与用法 原文引用:极客时间中的课程<Go error处理最佳实践> 前言:本文要讨论的就是go中error的基本原理/类型,以及最重要的几个问题: go代码开发中 ...

  5. c语言中用两个n表示什么格式,C语言中‘\n'为什么能表示CRLF两个字节

    为什么要说这个简单的问题? 众所周知,在Windows下文本文件的换行符是CRLF,占两个字节.在Unix下是LF,占一个字节.(还有奇葩的Mac是CR).但是C语言中直接printf一个 '\n', ...

  6. Go语言中的goroutine

    目录 Go并发优势 goroutine goroutine定义 线程和协程的区别 创建goroutine runtime包 Gosched() Goexit() GOMAXPROCS() Go并发优势 ...

  7. Go语言中的JSON处理 【Go语言圣经笔记】

    JSON JavaScript对象简谱(JSON, Java Script Object Notation)是一种用于发送和接收结构化信息的标准协议.在类似的协议中,JSON并不是唯一的一个标准协议. ...

  8. c语言中struct和c++中class实例对比

    前言 实现游戏中简单的打怪升级的功能 c语言中的struct #include <stdio.h>typedef void(*Train)(struct player*, int); ty ...

  9. 关于C语言中printf函数“输出歧视”的问题

    目录 关于C语言中printf函数"输出歧视"的问题 问题描述 探索问题原因 另一种研究方法 问题结论 关于C语言中printf函数"输出歧视"的问题 问题描述 ...

最新文章

  1. 【QT】Qtcreator的设计模式中将控件提升为自定义的控件
  2. 怎么保证缓存和数据库一致性
  3. C++ UTF8和UTF16互转代码
  4. MFC单文档框架编程(二): SDI框架下的消息处理
  5. 常用开源工具、框架收藏
  6. 安卓案例:利用定时器实现逐帧动画
  7. C++ 多字节与宽字符串的相互转换
  8. FreeRTOS基本教程零:STM32 FReeRTOS 移植流程
  9. java计算机毕业设计网上图书销售系统源程序+mysql+系统+lw文档+远程调试
  10. 汇编语言(第四版)(个人复习点)
  11. 流动时代消费链路离散化下广告设计的衍变方向【学习笔记】
  12. 美团优选总显示服务器403,最新提示!美团优选商家端登录入口
  13. 画图软件修改图片分辨率
  14. 【api】添加了权限管理的一部分
  15. 网络安全——渗透综合实验
  16. 英语学习APP—百词斩
  17. pc 端与移动端区分点击与拖拽事件
  18. 中关村高新技术企业名单
  19. 常用的博客社区(续)
  20. 豆瓣前250个电影的相关分析

热门文章

  1. String、StringBuilder和StringBuffer
  2. oracle表分析 示例
  3. 离开时自动提示设为首页
  4. HashSet集合和TreeSet集合
  5. hud-1495--非常可乐 VS nyoj-21--三个水杯
  6. Spring常问的面试
  7. leetcode-654-最大二叉树
  8. 【BZOJ1485】[HNOI2009]有趣的数列(组合数学)
  9. Mac终端显示 bogon的问题
  10. KRPano JS 场景编辑器源码