os.Exit() とdeferを両立する
みんな困ってたので比較的まっとうな解決策を考えてみる。
tl;dr
下のようにos.Exit() を無名関数に包んで先頭でdefer 実行する。
|
|
詳細
main
,TestMain
の後処理なので対象関数内で実行すると分かりやすい- 確実に実行されてほしい後処理なのだから
defer
- 最後に実行されたいのだから先頭の
defer
- 受け取る値の評価は遅延したいので無名関数で囲う
masu-mi's blog(dirty pages)
struggle to fix new knowledge
みんな困ってたので比較的まっとうな解決策を考えてみる。
下のようにos.Exit() を無名関数に包んで先頭でdefer 実行する。
|
|
main
, TestMain
の後処理なので対象関数内で実行すると分かりやすいdefer
defer