[ Go ] 8. defer
defer fmt.Println(“結束惹”)
Sep 7, 2018 · 1 min read
defer 可以使函式延遲至 return 前執行,範例如下:
輸出為: World Hello
可以發現 Hello 在 World 之前就輸出了。
被 defer 的函式會被丟到一個 stack 中,在 return 前才執行,因此它是 LIFO,依照被 defer 的順序反過來執行:
輸出為: 9 8 7 6 5 4 3 2 1 0
defer 可以使函式延遲至 return 前執行,範例如下:
輸出為: World Hello
可以發現 Hello 在 World 之前就輸出了。
被 defer 的函式會被丟到一個 stack 中,在 return 前才執行,因此它是 LIFO,依照被 defer 的順序反過來執行:
輸出為: 9 8 7 6 5 4 3 2 1 0