go的defer


//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 和匿名函数结合

猜你喜欢

转载自www.cnblogs.com/oceanran/p/12613831.html