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))
}