上級 › deferの引数はdefer文を実行した時点の値で評価される › パターン5
deferの引数はdefer文を実行した時点の値で評価される
defer文に渡した関数呼び出しの引数は、実際に関数が実行される(関数の終了時)タイミングではなく、defer文自体が実行された時点で評価され確定します。
1 package main 2 3 import "fmt" 4 5 func main() { 6 level := 1 7 _____________________________________ ^ 8 level = 9 9 }
出力: 1
空欄を埋めて実行を通す
「deferは関数の一番最後の状態を見るはず」という直感は、引数を直接渡す書き方には当てはまりません。
次の問題