go中defer的作用。
1,在函式執行結束時,進行清理操作。比如:
關閉檔案流
// open a file解鎖乙個加鎖的資源defer file.close()
mu.lock()列印最終報告defer mu.unlock()
printheader()關閉資料庫鏈結defer printfooter()
// open a database connection2,對函式return的返回值進行操作defer disconnectfromdb()
package main輸出:import (
"io"
"log")
func func1(s string) (n int, err error) ()
return 7, io.eof}
func main()
output: 2011/10/04 10:46:11 func1("go") = 7, eofdefer是可以訪問函式返回值7和eof的。
Go中的延遲處理 defer
defer 語句 該語句表示預定對乙個函式進行呼叫,呼叫的函式被稱為延遲函式 eg defer fmt.println thye finishing touches.defer fmt.println 11 該語句在函式結束時被呼叫,其執行順序和書寫順序相反,即先列印 11,再列印 the fini...
go語言defer的使用
go語言的defer 延遲執行 語句,是在函式結束前執行,而如果在函式中有多個defer語句時,會像乙個堆疊一樣,先進後出,後進先出。defer語句在進行一些開啟資源的操作時,遇到錯誤需要提前返回,在返回前你需要關閉相應的資源,不然很容易造成資源洩露等問題上很試用。舉個defer語句簡單的使用如下 ...
go語言的defer語句
go語言defer語句的用法 參考 defer後面必須是函式呼叫語句,不能是其他語句,否則編譯器會出錯。package main import log func foo n int int這個例子中defer後面使用的是n 指令,不是乙個函式呼叫語句,編譯器就報錯 command line argu...