培训首页  >  web前端新闻  >  Go语言流程控制:延时执行defer

Go语言流程控制:延时执行defer

[2018-09-20 17:01:09] 浏览量:114 来源:

北京兄弟连IT

  很多人喜欢Go语言,其实是因为Go语言有其独特的语言属性在支撑着其在编程语言界的发展,今天兄弟连Go语言+区块链培训老师给大家介绍一下关于Go语言中流程控制3:延时执行defer,下面我们一起来看一下吧。(  )

defer概述 
defer xxx() 延时执行,将xxx放在函数的最后执行 
多个defer xxx()时,所有defer倒序执行,即早声明的defer会最后执行

用途

· IO(数据库读写,文件读写,网络数据读写)

· IO资源=数据库连接,打开的文件对象,网路连接

· IO资源开销(CPU,内存,磁盘…)巨大

· IO资源,随用随开,用完【即】关

场景

· IO只是场景之一

· 其它场景:消费完毕要单,运动完要洗澡,自习结束要关灯

读写数据库,并在程序的最后关闭数据库

func demo41() {

    //随用随开,用完【即】关

    fmt.Println("打开数据库")

    //defer所唤起的函数将在函数结束前才执行

    defer closeDatabase()

 

    fmt.Println("愉快地读写数据")

    fmt.Println("读写完毕")

}

多个defer时,早defer的操作最后执行

func demo42() {

    //打开数据库

    fmt.Println("打开数据库")

    defer closeDatabase()

    //读入DB数据

    fmt.Println("读入DB数据")

    //打开文件

    fmt.Println("打开文件")

    defer closeFile()

    //向文件中写出DB中的数据

    fmt.Println("读入DB数据")

    //关闭文件

    //继续操作数据库

    fmt.Println("继续操作数据库")

    //关闭数据库

}

func closeDatabase() {

    fmt.Println("关闭数据库")

}

func closeFile() {

    fmt.Println("关闭文件")

}

更多区块链视频教程/源码/课件/学习资料-企鹅QUN:

文中图片素材来源网络,如有侵权请联系删除
  • 软件开发
  • 软件测试
  • 数据库
  • Web前端
  • 大数据
  • 人工智能
  • 零基础
  • 有HTML基础
  • 有PHP基础
  • 有C语言基础
  • 有JAVA基础
  • 其他计算机语言基础
  • 周末班
  • 全日制白班
  • 随到随学

网上报名

热门信息