生效

golang中的defer关键字什么时候生效
Go

golang中的defer关键字什么时候生效

49 0

在golang中,我们使用defer语句来进行一些错误处理和收尾工作,它的作用类似java里面finally关键字的作用。不过不论是java的finally关键字还是c++的Raii类,我们都能清楚地知道它们的作用域和执行的时机,那么golang中defer关键字所处理的内容是在什么时候执行的呢?首先官方文档中说:函数返回、函数结束或者对应的goroutine发生panic的时候defer就会执行。然后需要注意的是因为golang支持多值返回,所以是在返回前把返回值压到栈中的,而c语言是把返回值存到寄存器