defer f()とdefer fの挙動を誤解していた話

Room 1 19:15 - 19:20

Goのdeferを正しく理解するには、「関数を登録している」のか「関数を実行した結果を登録している」のかを見極める必要があります。 なぜなら、defer f()とdefer fでは評価のタイミングが異なり、意図しない挙動やバグの原因になりかねないからです。 私自身、「deferは関数の終了時に実行されるもの」と理解していたものの、あるコードでその説明が通用しない場面に直面しました。 本LTではその体験をもとに、deferの挙動を楽しく学べる内容をお届けします。 さらに、deferを応用したちょっとしたTipsも紹介予定です。 本LTがdeferの理解を深める機会となれば幸いです。