其他分享
首页 > 其他分享> > go 基础defer

go 基础defer

作者:互联网

defer

func main()  {
	//defer 延迟关键字,可以用于修饰语句 函数,确保在退出时执行
	//一般用于资源清理工作
	//解锁 关闭文件
	//在一个函数中多次调用defer,先入后出
	Readfile("test/var_var.go")

}
func Readfile(filename string)  {
	//go一般把错误放到最后一个参数返回
	//err nil表示没有错误 非nil表示执行失败
	f1,err := os.Open(filename)
	defer func(a int) {
		fmt.Println("文件准备关闭")
		fmt.Println("code:",a)
		f1.Close()
	}(100)//匿名函数,同时调用
	if err != nil {
		fmt.Println("打开文件失败",err)
		return
	}
	buf := make([]byte,1024)
	n,_ := f1.Read(buf)
	fmt.Println("读取的byte长度", n)
	fmt.Println("内容:",string(buf))
}

标签:defer,err,f1,fmt,基础,Println,go
来源: https://www.cnblogs.com/aiverhua/p/16280098.html