Deferについて調べていました

前回Goのチュートリアルにdeferというものがあり、

初めての概念だったのでちょっと混乱していたところでした。

詳しめの記事を読んで、ようやくどういった使い方を想定しているのか把握。

 

通常、呼び出された関数はその場で実行されるところが、

遅延関数はその呼び出し元関数が終わるタイミングで実行されるということでした。

これによって、例えばファイルを開いた後に閉じる遅延関数を仕込むことで、

何らかの原因で途中でプログラムが終了する場合でも閉じ忘れることがありません。

 

また、異常終了を示すPanicやPanic時に解決を図るRecoverという関数と組み合わせることで、

異常を検知した際も、適切に後処理を動作させることができるようです。

使い方マスターしてツールに組み込んだりしてみたい・・・。

 

以上