go中defer的作用

2021-09-24 12:26:39 字數 623 閱讀 3443

go中defer的作用。

1,在函式執行結束時,進行清理操作。比如:

關閉檔案流

// open a file  

defer file.close()

解鎖乙個加鎖的資源

mu.lock()  

defer mu.unlock()

列印最終報告

printheader()  

defer printfooter()

關閉資料庫鏈結

// open a database connection  

defer disconnectfromdb()

2,對函式return的返回值進行操作

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, eof
defer是可以訪問函式返回值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...