Menu
Coddy logo textTech

シャドーイング パート1

CoddyのRustジャーニー「Fundamentals」セクションの一部 — レッスン 46/75。

異なるスコープ内であれば、以前の変数と同じ名前で新しい変数を宣言することができます。新しい変数は、そのスコープが終了するまで以前の変数をシャドーイング(隠蔽)します。

fn main() {
    let x = 5;
    {
        let x = 12;
        // 外側のxをシャドーイングします
        println!("{}", x);
        // "12"を表示します
    }
    
    println!("{}", x);
    // "5"を表示します
}
challenge icon

チャレンジ

初心者

シャドーイングの概念を実演するRustプログラムを作成してください。以下の手順を実行します:

  1. x という名前の変数を宣言し、値 5 で初期化します。
  2. x の値を、次の形式でコンソールに出力します:x is: …
  3. 新しいスコープ内で、元の x3 を加えた新しい値で x をシャドーイングします。
  4. シャドーイングされた x を、次の形式で出力します:x is: …
  5. 最後に、スコープの外側で x を次の形式で出力します:x is: …

チートシート

異なるスコープ内であれば、以前の変数と同じ名前で新しい変数を宣言することができます。新しい変数は、そのスコープが終了するまで以前の変数をシャドーイング(隠蔽)します:

fn main() {
    let x = 5;
    {
        let x = 12;
        // 外側のxをシャドーイングします
        println!("{}", x);
        // "12"を出力します
    }
    
    println!("{}", x);
    // "5"を出力します
}

自分で試してみよう

fn main() {
    // xを宣言し、5で初期化する
    
    // xの値を表示する
    
    {
        // 元のxに3を足した値でxをシャドーイングする
        
        // シャドーイングされたxの値を表示する
        
    }
    // 外側のxの値を表示する
    
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン