中級 › ブロック内でのシャドーイングは外側の変数に反映されない › パターン2
ブロック内でのシャドーイングは外側の変数に反映されない
if文などのブロックの中でletを使って同じ名前の変数を再宣言(シャドーイング)すると、それはブロック内だけで有効な別の変数になります。
1 fn main() { 2 let mut balance = 500; 3 let deposit = 100; 4 if deposit > 0 { 5 _________________ balance + deposit; ^ 6 println!("inside: {}", balance); 7 } 8 println!("outside: {}", balance); 9 }
出力: inside: 600
outside: 500
空欄を埋めて実行を通す
letで作った変数はブロックを抜けると消え、外側の変数には一切影響しません。
次の問題