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