スタッキングの遅延

遅延関数呼び出しはスタックにプッシュされます。関数が戻ると、その遅延呼び出しは後入れ先出しの順序で実行されます。

詳細については、defer ステートメントに関するこの ブログ記事 をお読みください。

  1. package main
  2. import "fmt"
  3. func main() {
  4. fmt.Println("counting")
  5. for i := 0; i < 10; i++ {
  6. defer fmt.Println(i)
  7. }
  8. fmt.Println("done")
  9. }