//当执行到defer时,展示不执行,会将defer后面的语句压入到独立的栈(defer栈) //当函数执行完毕,再成defer栈,按照先入后出的方式出栈,执行
[php]
package main
import "fmt"
func sum(n1, n2 int) int {
//当执行到defer时,展示不执行,会将defer后面的语句压入到独立的栈(defer栈)
//当函数执行完毕,再成defer栈,按照先入后出的方式出栈,执行
defer fmt.Println("ok1 n1=", n1)
defer fmt.Println("ok2 n2=", n2)
res := n1 + n2
fmt.Println("ok3 res=", res)
return res
}
func main() {
res := sum(10, 20)
fmt.Println("res=", res)
}
[/php]
执行结果:
ok3 res= 30
ok2 n2= 20
ok1 n1= 10
res= 30