package main
import "fmt"
func sum(n1, n2 int) int {
// 将defer后的语句压入一个独立的栈中(defer栈),暂时不执行。相应的值也会一起入栈
// 当函数执行完之后,再从defer栈中按先入后出顺序执行
defer fmt.Println("n1=", n1)
defer fmt.Println("n2=", n2)
n1++
n2++
sum := n1 + n2
fmt.Println("sum=", sum)
return sum
}
func main() {
result := sum(1, 2)
fmt.Println("result:", result)
// defer实际使用示例
// file = openFile("xxx")
// defer file.close()
}
以上代码输出如下
sum= 5
n2= 2
n1= 1
result: 5