定数
Rustには2種類の定数があり、いずれもグローバルスコープを含む任意のスコープで宣言することができます。また、いずれも型を明示しなくてはなりません。
const
: 不変の値(通常はこちらを使用する)static
: スタティックなライフタイムを持つミュータブル(mut
)な値 The static lifetime is inferred and does not have to be specified. Accessing or modifying a mutable static variable isunsafe
.
// Globals are declared outside all other scopes. // グローバル変数はあらゆるスコープの外で宣言します static LANGUAGE: &str = "Rust"; const THRESHOLD: i32 = 10; fn is_big(n: i32) -> bool { // Access constant in some function // 関数内から定数を参照 n > THRESHOLD } fn main() { let n = 16; // Access constant in the main thread // main 関数の中から定数を参照 println!("This is {}", LANGUAGE); println!("The threshold is {}", THRESHOLD); println!("{} is {}", n, if is_big(n) { "big" } else { "small" }); // Error! Cannot modify a `const`. // エラー!`const`は変更できません。 THRESHOLD = 5; // FIXME ^ Comment out this line // FIXME ^ この行をコメントアウトしましょう }