Progrust Library.

// dictionary

変数.

値に名前を付けて保持するための仕組みです。
Rustでは通常、letキーワードで変数を宣言します。

fn main() {
    let price = 300; // 変数宣言と初期化
    println!("合計: {}円", price);
}
Playgroundで開く

変数はデフォルトで不変

変数はデフォルトで不変(immutable)です。
宣言時に mut を付けたときだけ値を変更できます。

fn main() {
    let price = 300; // 不変の変数(mut なしで再代入するとエラー: E0384)
    let mut count = 2; // mut を付けると可変
    count += 1;
    println!("合計: {}円", price * count);
}
Playgroundで開く

補足

シャドーイングとmutの違い

mut は同じ変数の値を書き換えるのに対し、シャドーイングlet新しい変数を作って同じ名前を再利用します。新しい変数なので、元と異なる型にすることもできます。

fn main() {
    let spaces = "   "; // &str型
    let spaces = spaces.len(); // usize型として作り直せる
    println!("空白の数: {}", spaces);
}
Playgroundで開く
未初期化の変数は使えない

Rustでは宣言と初期化を分けて書けますが、すべての実行経路で初期化されるまでその変数は使えません。

fn main() {
    let balance: i32;
    println!("{}", balance); // エラー: E0381(未初期化の可能性がある変数の使用)
}
Playgroundで開く

この辞書が使われているページ

backlinks 28

  1. 辞書for式
  2. 辞書if式
  3. 辞書let-else文
  4. 辞書loop式
  5. 辞書match式
  6. 辞書NLL(非レキシカルライフタイム)
  7. 辞書クローン
  8. 辞書コンソール出力
  9. 辞書シャドーイング
  10. 辞書スライス
  11. 辞書ダングリング参照
  12. 辞書ベクタ(Vec)
  13. 辞書ムーブ
  14. 辞書ループラベル
  15. 辞書関数
  16. 辞書構造体
  17. 辞書所有権
  18. 辞書整数型
  19. 辞書定数
  20. 辞書
  21. 辞書文字列スライス
  22. 辞書文字列型
  23. 辞書包括パターン
  24. 動かして学ぶRustプログラミング問題集 › 第1章 コンソール出力と変数
  25. 動かして学ぶRustプログラミング問題集 › 第5章 タプルと配列・スライス
  26. 動かして学ぶRustプログラミング問題集 › 第7章 所有権とムーブ
  27. 動かして学ぶRustプログラミング問題集 › 第8章 参照と借用
  28. 動かして学ぶRustプログラミング問題集 › 第9章 構造体