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 38

  1. 辞書Copyトレイト
  2. 辞書for式
  3. 辞書if式
  4. 辞書impl Trait
  5. 辞書let-else文
  6. 辞書loop式
  7. 辞書match式
  8. 辞書NLL(非レキシカルライフタイム)
  9. 辞書クローン
  10. 辞書コンソール出力
  11. 辞書シャドーイング
  12. 辞書スコープ
  13. 辞書スライス
  14. 辞書ダングリング参照
  15. 辞書トレイト境界
  16. 辞書ベクタ(Vec)
  17. 辞書マクロ
  18. 辞書ムーブ
  19. 辞書ライフタイム
  20. 辞書ループラベル
  21. 辞書可変性
  22. 辞書関数
  23. 辞書型推論
  24. 辞書構造体
  25. 辞書借用チェッカー
  26. 辞書所有権
  27. 辞書整数型
  28. 辞書定数
  29. 辞書比較演算子
  30. 辞書文
  31. 辞書文字列スライス
  32. 辞書文字列型
  33. 辞書包括パターン
  34. 本動かして学ぶRustプログラミング問題集 › 第1章 コンソール出力と変数
  35. 本動かして学ぶRustプログラミング問題集 › 第5章 タプルと配列・スライス
  36. 本動かして学ぶRustプログラミング問題集 › 第7章 所有権とムーブ
  37. 本動かして学ぶRustプログラミング問題集 › 第8章 参照と借用
  38. 本動かして学ぶRustプログラミング問題集 › 第9章 構造体