Golang全面深入系列之 defer
前言 大家都知道go语言的defer功能很强大,对于资源管理非常方便,但是如果没用好,也会有陷阱哦。Go 语言中延迟函数 defer 充当着 try...catch 的重任,使用起来也非常简便,那么defer、return、返回值、panic 之间的执行顺序是怎么样的呢,下面我们就一点一点来揭开它的神秘面纱!话不多说了,来一起看看介绍吧。 Defer介绍 defer语句用于函数在返回之前执行函数调用。这个定义可能看起来很复杂,但通过一个例子很容易理解。 package main import ( "fmt" ) func finished() { fmt.Println("finished") } func largest() { defer finished() fmt.Println("largest()执行") } func main() { largest() } 也就是在func结束(return)之前执行的动作。无论定义在普通语句的前后。 defer同样支持方法的调用。 package main import ( "fmt" ) type person struct { firstName string lastName string } func (p person) fullName() { fmt.Printf("%s %s",p.firstName,p