多個defer
在一個函數(shù)內(nèi)定義多個defer
,則其遵循類似 后進(jìn)先出 的原則枣购,最后定義的defer最先執(zhí)行
defer在return之前執(zhí)行
package main
import "fmt"
func main() {
fmt.Println("return:", test())
}
func test() int {
var i int
defer func() {
i++
fmt.Println("defer1", i)
}()
defer func() {
i++
fmt.Println("defer2", i)
}()
return i
}
輸出結(jié)果為:
defer2 1
defer1 2
return: 0