Golang中的defer关键字实现比较特殊的功能,按照官方的解释,defer后面的表达式会被放入一个列表中,在当前方法返回的时候,列表中的表达式就会被执行。一个方法中可以在一个或者多个地方使用defer表达式,这也是前面提到的,为什么需要用一个列表来保存这些表达式。在Golang中,defer表达式通常用来处理一些清理和释放资源的操作。貌似看起来比较难懂,其实,如果你用过C#,一定记得那个用起来非常方便的using语句,defer可以理解成为了实现类似的功能。不过比起C#的using语句,defer的行为稍微复杂一些,想要彻底理解defer,需要了解Golang中defer相关的一些特性。more通过一个简单的例子,我们就可以大致了解defer的用法:12345678910111213141516funcCopyFile(dstName,srcNamestring)(writtenint64,errerror){src,err:=os.Open(srcName)iferr!=nil{return}dst,err:=os.Create(dstName)iferr!=nil{return}written,err=io.Copy(dst,src)dst.Close()src.Close()return}CopyFile方法简单的实现了文件内容的拷贝功能,将源文件的内容拷贝到目标文件。咋
...
继续阅读
(75)