兄弟连Go语言培训带你实战GO案例(7)Go Defer

XDLGo · 2018-07-31 17:31:48 · 1361 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览    
这是一个创建于 2018-07-31 17:31:48 的文章,其中的信息可能已经有所发展或是发生改变。

  兄弟连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

1361 次点击  
加入收藏 微博
3 回复  |  直到 2018-08-01 14:21:21
polaris
polaris · #1 · 7年之前

能不能走点心,这排版~存粹为了打广告的话,我只能封号了~

YeXiaoChai
YeXiaoChai · #2 · 7年之前

别这样 好吗? 太过分了点吧?

XDLGo
XDLGo · #3 · 7年之前

@polaris 抱歉哈 下次认真排版

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传