golang-9- defer

1、defer 語句會延遲函數的執行直到上層函數返回。延遲調用的參數會立刻生成,但是在上層函數返回前函數都不會被調用。


golang-9- defer

2、延遲的函數調用被壓入一個棧中。當函數返回時, 會按照後進先出的順序調用被延遲的函數調用。

<code>import "fmt"func main() {fmt.Println("counting")for i := 0; i < 10; i++ {defer fmt.Println(i)}fmt.Println("done")}/<code>
golang-9- defer

3、defer後面必須是函數調用語句,不能是其他語句,否則編譯器會出錯


golang-9- defer


4、defer用途:

<code>1. 關閉文件句柄2. 鎖資源釋放3. 數據庫連接釋放/<code>


分享到:


相關文章: