释议:Defer 被用来确保一个函数调用在程序执行结束前执行。同样用来执行一些清理工作。
示例一:
func main() {
for i:=0 ;i<5;i++{
defer fmt.Printf("%d",i)
fmt.Println("val"+i)
}
fmt.Println("main end")
}
运行结果
val 0
val 1
val 2
val 3
val 4
main end
43210
示例二:
func main(){
defer b(a())
fmt.Println("end")
}
func a() string {
return "abc"
}
func b(arg string) {
fmt.Println("run func " + arg)
}
运行结果
end
run func abc