十一、GO語言的defer

在任意函數中都可以使用defer關鍵字來延時處理某些操作

 

1、當執行到defer時,暫時不會執行defer後面的語句,會將defer後面的語句壓入到獨立的棧中

2、當函數執行完畢後,再從defer棧按照先進後出的方式出棧執行

3、在defer語句放入到棧時,也會將相關的值拷貝同時入棧

 輸出結果

在38行語句修改了n1的值,但是36行輸出的值依然是修改之前的值(對應上面第3點)

 

實踐

defer file.Close()   //關閉文件流

defer connect.Close() //關閉數據庫連接

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