定数アイテム

Syntax
ConstantItem :
   const ( IDENTIFIER | _ ) : Type ( = Expression )? ;

定数アイテムはプログラム中の特定のメモリ位置と関連しない、命名可能な定数値である。定数は基本的にどこで使用されてもインライン化、つまり使用時に関連する文脈へと直接にコピーされる。これには外部クレートからの定数や、Copy でない型の使用も含む。同じ定数への参照は必ずしも同じメモリアドレスへの参照を保証しない。

定数は明示的に型付けされなければならない。その型は 'static ライフタイムを持たなければならない: 初期化子中のあらゆる参照は 'static ライフタイムを持たなければならない。

定数は他の定数のアドレスを参照するかもしれず、その場合そのアドレスは適用可能な箇所に省略されたライフタイムを持つ、その他 - 殆どの場合で - 既定の static ライフタイムになる。(静的ライフタイムの省略を参照。) ただし、コンパイラは定数を何度も勝手に変換できる規則のため、アドレスの参照先は一定しないかもしれない。

const BIT1: u32 = 1 << 0;
const BIT2: u32 = 1 << 1;

const BITS: [u32; 2] = [BIT1, BIT2];
const STRING: &'static str = "bitstring";

struct BitsNStrings<'a> {
    mybits: [u32; 2],
    mystring: &'a str,
}

const BITS_N_STRINGS: BitsNStrings<'static> = BitsNStrings {
    mybits: BITS,
    mystring: STRING,
};

定数式はトレイトの定義でのみ省略できる。