Code Fix

中級ブロック内でのシャドーイングは外側の変数に反映されない › パターン4

ブロック内でのシャドーイングは外側の変数に反映されない

if文などのブロックの中でletを使って同じ名前の変数を再宣言(シャドーイング)すると、それはブロック内だけで有効な別の変数になります。

 1  fn main() {
 2      let mut stock = 30;
 3      let arrived = 10;
 4      if arrived > 0 {
 5          _______________ stock + arrived;
                   ^
 6          println!("inside: {}", stock);
 7      }
 8      println!("outside: {}", stock);
 9  }
出力: inside: 40 outside: 30

空欄を埋めて実行を通す

広告
広告スロット(未設定)

ブロック内でのシャドーイングは外側の変数に反映されない

ブロックを抜けると、外側の変数は変更されないまま残ります。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)