golang中defer和recover函式

2021-10-07 19:46:14 字數 842 閱讀 9997

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...