質問: a } doit(0)
回答: if a == 0 { return } にて return されています。 (それ以降の処理を行わず処理を終了する) そのため2番目のdeferは実行されません 引数に0以外を入れれば、 if a == 0 { return } でreturnされず、2番目のdeferが実行されます