package main
import "fmt"
func calc(index string, a, b int) int {
ret := a + b
fmt.Println(index, a, b, ret)
return ret
}
func main() {
a := 1
b := 2
defer calc("1", a, calc("10", a, b))
a = 0
defer calc("2", a, calc("20", a, b))
b = 1
}
// 程序运行步骤分析
// 1. a=1
// 2. b=2
// 3. defer calc("1", 1, calc("10", 1, 2))
// 4. calc("10", 1, 2) // 输出-1: 10,1,2,3
// 5. a=0
// 6. defer calc("2", 0, calc("20", 0, 2))
// 7. calc("20", 0, 2) //输出-2: 20,0,2,2
// 8. b=1
// 9. defer calc("2", 0,2) //输出-3: 2,0,2,2
// 10.defer calc("1", 1,3) //输出-4: 1,1,3,4
网友评论