GO语言-函数defer

2019-12-03  本文已影响0人  平凡之路001

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

上一篇 下一篇

猜你喜欢

热点阅读