触发时机-程序结束前调用
package main
import "fmt"
func main() {
defer fmt.Println("结果我一串也没吃到")
defer fmt.Println("他骑上车就走了")
fmt.Println("给我十串羊肉串")
fmt.Println("先给你钱")
panic("城市管理者来了")
defer fmt.Println("我很后悔先给他钱")
fmt.Println("他们都跑了")
}
实际应用示例
package main
import (
"bufio"
"fmt"
"os"
)
func WriteCourses(fileName string, courses []string) {
curDir, _ := os.Getwd()
f, err := os.Create(curDir + fileName)
defer f.Close()
if err != nil {
panic(err)
}
w := bufio.NewWriter(f)
defer w.Flush()
for _, item := range courses {
fmt.Fprintln(w, item)
fmt.Println("write course " + item)
}
}
func main() {
courses := []string{"语文", "数学", "英语", "体育", "政治", "历史", "地理"}
WriteCourses("/courses.txt", courses)
}