mirror of
https://gitee.com/shikong-sk/golang-study
synced 2025-02-23 15:32:15 +08:00
docs: Defer 延时执行 扩展
This commit is contained in:
parent
a6b328cd99
commit
8a5fe71102
@ -25,10 +25,31 @@ func demo2() (x int) {
|
|||||||
return 5
|
return 5
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func demo3(index, a, b int) int {
|
||||||
|
ret := a + b
|
||||||
|
fmt.Printf("index: %d, a: %d, b: %d \t ret: %d\n", index, a, b, ret)
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
res := demo()
|
res := demo()
|
||||||
fmt.Printf("demo => %T %+v\n", res, res)
|
fmt.Printf("demo => %T %+v\n", res, res)
|
||||||
|
|
||||||
res = demo2()
|
res = demo2()
|
||||||
fmt.Printf("demo => %T %+v\n", res, res)
|
fmt.Printf("demo => %T %+v\n", res, res)
|
||||||
|
|
||||||
|
fmt.Println("=========================================================")
|
||||||
|
|
||||||
|
// 1. defer demo3(1, a, demo3(4, a, b)) 先运算 里面的 demo3 a:1 b:2 ret:3 => defer demo3(1, 1, 3)
|
||||||
|
// 2. a = 0
|
||||||
|
// 3. defer demo3(2, a, demo3(3, a, b)) 先运算 里面的 demo3 a:0 b:2 ret:2 => defer demo3(2, 0, 2)
|
||||||
|
// 4. b = 1
|
||||||
|
// 5. defer demo3(2, a, demo3(3, a, b)) 此处 参数 demo3 已在第3步计算完毕 故为 defer demo3(2, 0, 2) a:0 b:1 ret:2
|
||||||
|
// 6. defer demo3(1, a, demo3(4, a, b)) 此处 参数 demo3 已在第1步计算完毕 故为 defer demo3(1, 1, 3) a:0 b:1 ret:4
|
||||||
|
a := 1
|
||||||
|
b := 2
|
||||||
|
defer demo3(1, a, demo3(4, a, b))
|
||||||
|
a = 0
|
||||||
|
defer demo3(2, a, demo3(3, a, b))
|
||||||
|
b = 1
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user