1. 程式人生 > >go 延遲函數 defer

go 延遲函數 defer

fff ron num strong type code for term ++

defer 語句用於延遲調用指定的函數
比如:

func outerFunc()  {
    defer fmt.Println("defer 執行")
    fmt.Println("第一個被打印")
}

技術分享圖片

defer 語句最後才會被執行

func printNumbers()  {
    for i :=0 ; i < 5; i++ {
        defer func() {
            fmt.Println(i)
        }()
    }
}

會打印55555
延遲函數執行時i已經=5了

func printNumbers1() {
for i :=0 ; i < 5; i++ {

defer func(n int) {
fmt.Println(n)
}(i)
}
}
會打印43210
延遲函數有了傳入參數,就會打印傳入的參數

go 延遲函數 defer