返回
北京兄弟连IT
置顶
该校与厚学网暂未合作,平台不保证课程的真实有效性,如有侵权等争议,请及时与厚学网联系处理
招生热线:400-656-1390

学校地址:北京市昌平区回龙观文华西路育荣教育园区兄弟连IT教育

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

114 2018-09-21 11:00:04

学习笔记

  很多人喜欢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:

文中图片素材来源网络,如有侵权请联系删除
来源:北京兄弟连IT
热门课程 全部课程

热门动态

申请免费试听

只要一个电话

我们为您免费回电

立即申请