2014年9月16日火曜日

Golangのdefer


deferはファイルcloseなど関数がreturnするときに処理させたいものを宣言しておくもの。
ファイルのcloseとbufferのフラッシュなんかで順番は大丈夫なのかなと思ってググったところ、

http://qiita.com/tenntenn/items/9aebce917760f157c44e


First in Last outで、引数は宣言した時点で評価されるらしいです。
なるほど。

2 件のコメント:

  1. Please keep in mind that Go's deferred functions are called when the function is returning, not at the end of the block like C++'s RAII.

    返信削除
  2. ありがとうございます、ネストしたりするとわけがわからなくなってくるので気をつけます!

    返信削除