上級 › deferの引数はdefer文を実行した時点の値で評価される › パターン2
deferの引数はdefer文を実行した時点の値で評価される
defer文に渡した関数呼び出しの引数は、実際に関数が実行される(関数の終了時)タイミングではなく、defer文自体が実行された時点で評価され確定します。
1 package main 2 3 import "fmt" 4 5 func main() { 6 count := 10 7 _____________________________________ ^ 8 count = 20 9 }
出力: 10
空欄を埋めて実行を通す
deferの引数評価タイミングはdefer文に到達した瞬間なので、その後countをいくら変更しても出力には反映されません。
次の問題