Progrust Library.

// dictionary

定数.

コンパイル時に値が確定する、不変の名前付き値です。const キーワードで宣言します。
慣習として名前は SCREAMING_SNAKE_CASE で付けます。使用箇所にはその値が直接埋め込まれます。

const TAX_RATE: f64 = 0.1; // 消費税率(f64 と型を明示する)

fn main() {
    let price = 500; // 税抜価格
    let tax = price as f64 * TAX_RATE;
    println!("税込: {}円", price + tax as i32);
}
Playgroundで開く

不変な変数との違い

let で宣言する変数とは以下のような違いがあります。

  • 型注釈が必須
  • 可変にすることはできない
  • 代入できるのは定数式(コンパイル時に評価できる式)のみ
  • 関数の外側を含む任意のスコープで宣言可能

補足

定数式しか代入できない

const に代入できるのはコンパイル時に評価できる式に限られ、実行時に決まる値(他の変数など)は使えません。ただし他の const の参照や const fn の呼び出しは定数式なので使えます。

fn main() {
    let items = 5;
    const TOTAL: i32 = items * 2; // エラー: E0435(定数の中で非定数の値を使用)
    println!("{}", TOTAL);
}
Playgroundで開く
const と static の違い

const は使用箇所ごとに値が埋め込まれ、固定のメモリ位置を持ちません。一方 static はプログラム全体で単一のメモリ位置を持つ静的変数で、参照するとつねに同じアドレスを指します。単なる不変の定数値には const を使うのが基本です。

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

backlinks 5

  1. 辞書シャドーイング
  2. 辞書ユニット様構造体
  3. 辞書整数型
  4. 辞書配列型
  5. 動かして学ぶRustプログラミング問題集 › 第1章 コンソール出力と変数