go 延遲函數 defer

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

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

go 延遲函數 defer

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
延遲函數有了傳入參數,就會打印傳入的參數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章