シャドーイング パート2
CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 48/75。
Rustで変数をシャドーイングすると、新しい変数は元の変数から完全に独立しており、それ自身の可変性の宣言が必要になります。シャドーイングは元の変数の可変性を引き継ぎません。
let mut mut_val = 7;
// 元の変数はミュータブル(可変)です
{
let mut_val = 8;
// これは外側の mut_val をシャドーイングする新しい変数です
mut_val = 50;
// エラーが発生しました。なぜなら
// mut_val がミュータブルではないからです
}
// ここでは問題ありません
// このスコープでは mut_val は凍結されていません
mut_val = 3;修正するには、内部スコープに mut を追加します:
{
let mut mut_val = 8;
mut_val = 50;
}チャレンジ
初心者与えられたコードを修正して、エラーなしで実行できるようにしてください。
自分で試してみよう
fn main() {
// このコードを修正して動作するようにしてください
let number = 42;
{
let number = number;
println!("number is {}", number);
number = 100; // これはエラーになります
println!("number is {}", number);
}
println!("number is {}", number);
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。