400-700-1307

【GO+区块链高级教程】Go Defer

2019-01-29 15:28
Go Defer
Defer 用来保证一个函数调用会在程序执行的最后被调用。通常用于资源清理工作。package main
import "fmt"
import "os"
// 假设我们想创建一个文件,然后写入数据,最后关闭文件
func main() {
// 在使用createFile得到一个文件对象之后,我们使用defer
// 来调用关闭文件的方法closeFile,这个方法将在main函数
// 最后被执行,也就是writeFile完成之后
f := createFile("/tmp/defer.txt")
// Windows下面使用这个语句
// f := createFile("D:\\Temp\\defer.txt")
defer closeFile(f)
writeFile(f)
}
func createFile(p string) *os.File {
fmt.Println("creating")
f, err := os.Create(p)
if err != nil {
panic(err)
}
return f
}
func writeFile(f *os.File) {
fmt.Println("writing")
fmt.Fprintln(f, "data")
}
func closeFile(f *os.File) {
fmt.Println("closing")
f.Close()
}

运行结果
creating
writing
closing
使用defer来调用closeFile函数可以保证在main函数结束之前,关闭文件的操作一定会被执行。
 

开班信息

当前校区

北京校区
  • 北京校区
  • 上海校区
  • 广州校区
  • 沈阳校区
  • 杭州校区
  • 南京校区
  • 郑州校区
  • 成都校区
  • 深圳校区
  • 西安校区
  • 苏州校区
  • 深圳沙井
  • 深圳观澜
  • 深圳龙岗
  • 武汉校区
  • 西宁校区
  • 石家庄校区
  • 湖北咸宁
  • 广东惠州
  • 广东佛山

                    Copyright © 2007-2019 IT兄弟连教育 版权所有 京ICP备11018177号  京公网安备 11010802026987号