美文网首页go语言
go语言的defer延迟执行

go语言的defer延迟执行

作者: GitArtOS | 来源:发表于2024-09-10 16:06 被阅读0次
    
    // 匿名函数的延迟执行
    func AnonymityFunc() {
        fmt.Println("程序开始")
        defer func() {
            fmt.Println("程序延迟调用")
        }()
        fmt.Println("程序结束")
    
        /*
                程序开始
            程序结束
            程序延迟调用
    
        */
    
    }
    
    // 返回值未设置变量名,那么返回值不可以修改
    func Test() int {
        var i int // 0
        defer func() {
            i++
            fmt.Println(i)
            fmt.Println("defer2:", i) //2
        }()
    
        defer func() {
            i++
            fmt.Println(i)
            fmt.Println("defer1:", i) //1
        }()
    
        return i
    
        /*
            defer1: 1
            defer2: 2
            0
        */
    
    }
    
    // 返回值设置变量名,那么返回值将会获得修改
    func Test1() (i int) {
    
        defer func() {
            i++
            fmt.Println(i)
            fmt.Println("defer2:", i) //2
        }()
        defer func() {
            i++
            fmt.Println(i)
            fmt.Println("defer1:", i) //2
        }()
        return i
    
        /*
        1
        defer1: 1
        2
        defer2: 2
        2
        */
    
    }
    
    
    

    相关文章

      网友评论

        本文标题:go语言的defer延迟执行

        本文链接:https://www.haomeiwen.com/subject/varuljtx.html