分享
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
兄弟连Go语言培训课程体系设计架构包括了区块链的基础语言Go语言、区块链后端技术体系、区块链公链、区块链分布式应用开发等内容讲解,以及到最后的面试指导和项目实战。课程由清华微软谷歌名师团队精心打造,历时半年时间共同研发而出。
GoDefer
Defer用来保证一个函数调用会在程序执行的最后被调用。通常用于资源清理工作。packagemain
import"fmt"
import"os"
//假设我们想创建一个文件,然后写入数据,最后关闭文件
funcmain(){
//在使用createFile得到一个文件对象之后,我们使用defer
//来调用关闭文件的方法closeFile,这个方法将在main函数
//最后被执行,也就是writeFile完成之后
f:=createFile("/tmp/defer.txt")
//Windows下面使用这个语句
//f:=createFile("D:\\Temp\\defer.txt")
defercloseFile(f)
writeFile(f)
}
funccreateFile(pstring)*os.File{
fmt.Println("creating")
f,err:=os.Create(p)
iferr!=nil{
panic(err)
}
returnf
}
funcwriteFile(f*os.File){
fmt.Println("writing")
fmt.Fprintln(f,"data")
}
funccloseFile(f*os.File){
fmt.Println("closing")
f.Close()
}
运行结果
creating
writing
closing
使用defer来调用closeFile函数可以保证在main函数结束之前,关闭文件的操作一定会被执行。
有疑问加站长微信联系(非本文作者))
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1678 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传