上級 › deferの引数はdefer文を実行した時点の値で評価される › パターン4
deferの引数はdefer文を実行した時点の値で評価される
defer文に渡した関数呼び出しの引数は、実際に関数が実行される(関数の終了時)タイミングではなく、defer文自体が実行された時点で評価され確定します。
1 package main 2 3 import "fmt" 4 5 func main() { 6 score := 0 7 _____________________________________ ^ 8 score = 100 9 }
出力: 0
空欄を埋めて実行を通す
deferに直接式の結果を渡す書き方は、その場で評価が完了してしまうため、後から値が変わっても反映されません。
次の問題