KDOC 629: 遅延関数呼び出しはLIFOで実行される
この文書のステータス
- 作成
- 2026-09-21 貴島
- レビュー
- 2026-09-21 貴島
概要
遅延関数は、周囲の関数が戻り値を返した後に LIFO の順序で実行される。
Defer, Panic, and Recover - The Go Programming Language
import "fmt"
func main() {
for i := 0; i < 4; i++ {
defer fmt.Print(i)
}
}
3210
defer 実行時でなく、 defer 文評価時 i が確定する。
ループでの実行順序 deferの実行順序
defer fmt.Print(0) 1 4
defer fmt.Print(1) 2 3
defer fmt.Print(2) 3 2
defer fmt.Print(3) 4 1
関連
なし。