0Pricing
Learn Rust Coding · レッスン

変数、可変性、シャドーイング

変数の宣言方法、可変性の管理方法、柔軟に変数を再定義するためのシャドーイングの使い方を理解します。

「変数、可変性、シャドーイング」はCoddyKit上の無料Learn Rust Codingレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn Rust Coding学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn Rust Codingコースには全3レッスンが含まれています。

Rustの変数入門

ようこそ!Rustでは、変数はデータを保存するための基本的な要素です。プログラムに必要な情報を入れておく、名前付きの箱のようなものです。

Rustは安全性を重視しており、その考え方は変数の扱い方にも表れています。変数の宣言方法、変更可能性の制御方法、そして巧みな「再定義」の方法を学びます。

`let`で変数を宣言する

Rustで変数を作成するには、letキーワードを使います。これにより、値に名前を付けます。Rustは型を推論できることが多いため、必ずしも型を指定する必要はありません。

次の簡単な例を実行してみましょう。

fn main() {
  let apples = 5;
  println!("I have {} apples.", apples);
}

Rustでは変数がデフォルトで不変

Rustの重要な概念の1つは、変数がデフォルトで不変であることです。変数に値を代入すると、後から変更することはできません。

制限のように感じるかもしれませんが、バグの防止につながり、特に並行プログラミングにおいて、コードをより安全で理解しやすくします。

`mut`で変数を可変にする

変数の値を変更する必要がある場合は、変数名の前にmutキーワードを付けて、明示的に可変にできます。

これにより、この変数の値を変更する意図があることをRustと他の開発者に伝えられます。

fn main() {
  let mut score = 100;
  println!("Initial score: {}", score);

  score = 150; // We can change it now!
  println!("New score: {}", score);
}

`mut`を使う場面

mutは強力ですが、必要な場合にだけ使うのがよい習慣です。基本的には不変性を優先してください。

  • カウンター、状態を表す変数、または実際に更新する必要がある値にはmutを使います。
  • 初回の代入後に値が変わらない場合は、不変のままにします(mutを付けません)。
  • 明確さ:変数にmutを明示すると、コードの意図がより明確になります。

`const`で定数を定義する

定数は、特別な種類の不変変数です。letではなくconstキーワードで宣言し、型を必ず明示的に指定します。

定数に設定できるのは定数式だけです。関数呼び出しの結果や、実行時にしか計算できない値は設定できません。

fn main() {
  const MAX_USERS: u32 = 10_000; // Type annotation is required!
  println!("Max users allowed: {}", MAX_USERS);
}

`let`変数と`const`定数の違い

let変数とconst定数の主な違いは次のとおりです。

  • 可変性:let変数はデフォルトで不変ですが、mutを付けて可変にできます。const定数は常に不変です。
  • 宣言:let変数にはletを使います。const定数にはconstを使います。
  • 型注釈:let変数は多くの場合、型を推論できます。const定数には型を必ず指定します。
  • スコープ:const定数はグローバルスコープを含む、あらゆるスコープで宣言できます。

シャドーイングの紹介

Rustでは、以前の変数と同じ名前で新しい変数を宣言できます。これをシャドーイングと呼びます。

新しい変数が古い変数を「隠す」ため、それ以降のコードからは新しい変数の値が見えるようになります。古い変数はメモリ上に存在し続けますが、直接アクセスすることはできなくなります。

fn main() {
  let x = 5;
  println!("First x: {}", x); // Outputs 5

  let x = x + 1; // 'x' is shadowed by a new 'x'
  println!("Second x: {}", x); // Outputs 6

  { // Inner scope
    let x = x * 2; // 'x' is shadowed again
    println!("Inner x: {}", x); // Outputs 12
  }
  println!("Outer x: {}", x); // Outputs 6 (inner x is out of scope)
}

型変換にシャドーイングを使う

シャドーイングの強力な使い方の1つは、同じ名前を保ったまま、変数の値や型を変換することです。文字列を数値に解析する場合などによく使われます。

新しい変数名(たとえばstring_val、次にnum_val)を作る代わりに、同じ名前を再利用できます。

fn main() {
  let spaces = "   ";
  println!("Spaces string: '{}'", spaces);

  // Shadow 'spaces' with a new variable that holds its length
  let spaces = spaces.len();
  println!("Spaces count: {}", spaces);
}

クイックチェック:変数と可変性

次のRustコードについて考えてみましょう。コンソールに出力されるyの最終的な値はいくつですか?

変数、可変性、シャドーイングのまとめ

よくできました!Rustの変数について、基本を学びました。

  • letを使って変数を宣言します。変数はデフォルトで不変です。
  • mutを付けると変数が可変になり、値を変更できます。
  • constは定数に使います。定数は常に不変で、型注釈が必要です。
  • シャドーイングを使うと、同じ名前で新しい変数を宣言し、以前の変数を置き換えられます。型変換に便利です。

次は、Rustのさまざまなプリミティブデータ型について詳しく見ていきます。

よくある質問

「変数、可変性、シャドーイング」レッスンは無料ですか?

はい。「変数、可変性、シャドーイング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn Rust Codingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn Rust Codingコースには全3レッスンが含まれています。

「変数、可変性、シャドーイング」で何を学びますか?

変数の宣言方法、可変性の管理方法、柔軟に変数を再定義するためのシャドーイングの使い方を理解します。 ブラウザで直接実行するハンズオンコードでLearn Rust Codingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Learn Rust Codingを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLearn Rust Codingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。

「変数、可変性、シャドーイング」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLearn Rust Codingレッスンでコードを書いて実行できますか?

はい。すべてのLearn Rust Codingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 変数、可変性、シャドーイング
  2. プリミティブ型と演算子
  3. 関数と制御フロー
← Learn Rust Codingに戻る