//defer 只能放在函数内部
//defer延迟调用,在函数结束前的一刹啦调用
多个defer同时在一个函数中,执行顺序:后进先出。不管发生了什么错误即使层序崩了,前面的defer都能被执行
//defer 只能放在函数内部 //defer延迟调用,在main函数结束前调用 func test(x int32) { fmt.Println("打印: ", 100/x) } func TextDefer(){ defer fmt.Println("程序崩了之后执行的语句") fmt.Println("程序顺序执行的语句") test(0) defer fmt.Println("程序崩了之后还能来吗?不能") fmt.Println("程序顺序执行的语句也不能") }
//defer 只能放在函数内部 //defer延迟调用,在main函数结束前调用 func test(x int32) { fmt.Println("打印: ", 100/x) } func TextDefer(){ defer fmt.Println("程序崩了之后执行的语句") fmt.Println("程序顺序执行的语句") defer test(0)//添加defer,则所有的都会被执行 defer fmt.Println("程序崩了之后还能来吗?不能") fmt.Println("程序顺序执行的语句也不能") }
1、defer 和匿名函数结合