defer
defer 會在外層 function return 後才執行,但會記得當下defer的狀態
即使發生錯誤或panic,
defer
還是會執行
範例1:
範例2:
如上的 defer 會在 a return 後印出 0
假設是 for 迴圈的 defer 則會推入類似 stack 內,先進後出
印出 3 2 1 0
再來試著讀取回傳值的defer
會印出4,因為 c 的 return 為 i
如果多個defer會相反方向執行
defer 會保留當下狀態
Last updated