defer語句是用來延遲執行**的,意思就是在執行一段**的時候,只有執行完畢那一時間,才會執行defer語句。而且在遇見多個defer的時候,最開始的defer會是最後乙個執行,可以通過以下**看出來
package main
import
"fmt"
func
main()
defer fmt.
println
("end"
)}
end
i value is [3]
i value is [2]
i value is [1]
begin
process exiting with code:
0
recover經常會和defer函式一起使用,這樣會保證在觸發一些panic的時候還可以正常的執行下邊的**。
package main
import
("fmt"
)func
main()
fmt.
println
("end")}
()i :=
1 j :=
0 k := i/j
fmt.
println
(k)}
runtime error
: integer divide by zero
endprocess exiting with code:
0
Golang中的defer使用
在golang當中,defer 塊會在函式呼叫鍊錶中增加乙個函式呼叫。這個函式呼叫不是普通的函式呼叫,而是會在函式正常返回,也就是return之後新增乙個函式呼叫。因此,defer通常用來釋放函式內部變數。為了更好的學習defer的行為,我們首先來看下面一段 func copyfile dstnam...
golang中defer使用小結
golang語言中defer的使用場景較多,用於鎖的關閉,連線的延遲關閉等,通常在函式的結束時呼叫,詳細的講就是在函式結束時返回值賦值後,返回前執行defer的方法,最後才返回,另外defer確實有一定的開銷,拒絕濫用。第一點 defer 不帶函式執行,defer可以理解像棧,先進後出,看下面 fu...
golang中defer的使用規則
在golang當中,defer 塊會在函式呼叫鍊錶中增加乙個函式呼叫。這個函式呼叫不是普通的函式呼叫,而是會在函式中正常返回,也就是在return之後新增乙個函式呼叫。因此,defer通常用來釋放函式內部變數。為了更好的學習defer的行為,我們首先來看下面一段 func copyfile dstn...