0
点赞
收藏
分享

微信扫一扫

go-基础-defer

蚁族的乐土 2022-01-07 阅读 41
package main

import (
	"fmt"
	"os"
)

// Defer用于确保函数调用在程序执行的后期执行,通常用于清理目的
func writeFile(f *os.File, p string) {
	fmt.Println("writing")
	fmt.Fprintln(f, p) // 写入文件
}
func createFile(p string) *os.File {
	fmt.Println("creating")
	f, err := os.Create(p)
	if err != nil {
		panic(err)
	}
	return f
}
func closeFile(f *os.File) {
	fmt.Println("closing")
	err := f.Close()
	if err != nil {
		fmt.Fprintf(os.Stderr, "error: %v \n", err)
		os.Exit(1)
	}
}
func main() {
	f := createFile("./defer.txt") // 1
	defer closeFile(f)             // 3 推迟关闭文件,等写入完成后再执行关闭,一般是再函数结束后执行.
	writeFile(f, "test")           // 2
}

举报

相关推荐

0 条评论