黑马程序员技术交流社区

标题: 【上海校区】go语言defer的用法 [打印本页]

作者: 不二晨    时间: 2018-12-18 16:49
标题: 【上海校区】go语言defer的用法
//defer用来推出前延迟操作,一个函数中可以有多个
//defer的执行顺序和栈的行为是一样的

package main

import "fmt"

func deferTest(x int) int{
        if(x==0){
                return 0
        }

        defer fmt.Printf("x=%d\n", x)
        //说明一个函数中可以有多个defer,defer的执行顺序跟栈的行为一样,先写后执行
        defer fmt.Printf("It's defer test.\n")

        //会先于defer执行
        fmt.Printf("x+1=%d\n", (x+1))
        return x+1
}

func main()  {
        //没有任何输出,因为defer写在了第一个return的后面,不会执行到
        deferTest(0)

        //一旦执行了defer,肯定会在函数退出之前执行的
        deferTest(1)
}

---------------------
【转载】仅作分享,侵删
作者:davidsu33
原文:https://blog.csdn.net/davidsu33/article/details/52877006



作者: 不二晨    时间: 2018-12-18 17:56
奈斯




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2