• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Golang > GO语言延迟函数defer用法分析

GO语言延迟函数defer用法分析

作者:shichen2014 字体:[增加 减小] 来源:互联网

shichen2014 通过本文主要向大家介绍了go语言defer,go语言函数,go语言,go语言环境搭建,go语言程序设计等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了GO语言延迟函数defer用法。分享给大家供大家参考。具体分析如下:

defer 在声明时不会立即执行,而是在函数 return 后,再按照 FILO (先进后出)的原则依次执行每一个 defer,一般用于异常处理、释放资源、清理数据、记录日志等。这有点像面向对象语言的析构函数,优雅又简洁,是 Golang 的亮点之一。

代码1:了解 defer 的执行顺序

import "fmt"

func fn(n int) int {
 defer func() {
  n++
  fmt.Println("3st:", n)
 }()

 defer func() {
  n++
  fmt.Println("2st:", n)
 }()

 defer func() {
  n++
  fmt.Println("1st:", n)
 }()

 return n //没有做任何事情
}

func main() {
 fmt.Println("函数返回值:", fn(0))
}</div>
输出:

1st: 1
2st: 2
3st: 3
函数返回值: 0

代码2:经典应用实例
 srcFile, err := os.Open(src)
 if err != nil {
  return
 }
 defer srcFile.Close() //每次申请资源时,请习惯立即申请一个 defer 关闭资源,这样就不会忘记释放资源了

 dstFile, err := os.Create(dst)
 if err != nil {
  return
 }
 defer dstFile.Close()

 return io.Copy(dstFile, srcFile)
}</div>
defer 还有一个重要的特性,就是即便函数抛出了异常,也会被执行的。 这样就不会因程序出现了错误,而导致资源不会释放了。

希望本文所述对大家的GO语言程序设计有所帮助。

</div>

您可能想查找下面的文章:

  • 总结Go语言中defer的使用和注意要点
  • GO语言Defer用法实例分析
  • GO语言延迟函数defer用法分析

相关文章

  • Go语言生成随机数的方法
  • Go语言使用组合的方式实现多继承的方法
  • 简单讲解Go程序中使用MySQL的方法
  • Go语言用map实现堆栈功能的方法
  • Go语言中的range用法实例分析
  • go语言遍历文件夹示例
  • Golang记录、计算函数执行耗时、运行时间的一个简单方法
  • golang实现http服务器处理静态文件示例
  • Go语言使用MySql的方法
  • Golang极简入门教程(三):并发支持

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • go语言制作一个gif动态图
    • GO语言文件的创建与打开实例分析
    • Go语言实现字符串切片赋值的方法小结
    • Go语言之自定义集合Set
    • go语言通过odbc操作Access数据库的方法
    • Go语言排序与接口实例分析
    • Go语言实现AzDG可逆加密算法实例
    • go语言简单的处理http请求的函数实例
    • 利用Go语言追加内容到文件末尾
    • Go语言常用字符串处理方法实例汇总

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有