Golang deferred函数

deferred函数调用

在大多数编程语言中,一个函数结束后便会返回到调用者的代码处,但是Go语言提供了一个关键词deferred,可以实现函数返回后先执行deferred指定的一个或几个函数,当这些deferred函数全部执行完毕后,再回到调用者的代码处。

示例:

1
2
3
4
5
6
7
8
9
10
11
func foo(a int) int {
defer fmt.Println("defer1")

if (a >= 0) {
fmt.Println("a >= 0")
return a
}

fmt.Println("a < 0")
return -a
}