bam6o0の記憶域

忘備録になればいいな

Go言語の勉強記録13bit

関数の遅延実行

  • 関数の実行を遅延させる時はdefer文を使う。
  • 通常はコードは記述された箇所で実行される。
  • 呼び出された関数の処理が完了してから、それ以降のコードが実行される。
  • 関数呼び出しを遅延指定した場合、その時点で実行されずdeferを呼び出した呼び出し元の関数から抜けた時に実行
  • 書式
defer 関数呼び出し
  • 遅延した関数から戻り値は受け取れない
  • deferを複数回使用した時はそれぞれの関数が指定した順に実行

実行結果

$go run defer.go
開始
終了
delayが呼び出されました

遅延実行の有用性

  • リソースの解放に便利
  • ファイルのクローズといったリソースの解放処理に使用すると便利

実行結果

$go run  defer_close.go
$cat test.txt
あいうえお