プリミティブ
Rust はさまざまな primitives へのアクセスを提供します。例を以下に示します。
スカラー型
- 符号付き整数:
i8、i16、i32、i64、i128、およびisize(ポインターサイズ) - 符号なし整数:
u8、u16、u32、u64、u128、およびusize(ポインター サイズ) - 浮動小数点数:
f32、f64 charは'a'、'α'、'∞'のような Unicode スカラー値(各 4 バイト)boolはtrueまたはfalse- ユニット型
()。取り得る唯一の値は空のタプル()
ユニット型の値はタプルですが、複数の値を含まないため複合型とは見なされません。
複合型
[1, 2, 3]のような配列(1, true)のようなタプル
変数にはいつでも_型注釈_を付けることができます。数値にはさらに、_サフィックス_または_デフォルト_によって注釈を付けることができます。整数のデフォルトは i32、浮動小数点数のデフォルトは f64 です。 なお、Rust はコンテキストから型を推論することもできます。
fn main() { // 変数には型注釈を付けることができます。 let logical: bool = true; let a_float: f64 = 1.0; // 通常の注釈 let an_integer = 5i32; // サフィックスによる注釈 // またはデフォルトが使用されます。 let default_float = 3.0; // `f64` let default_integer = 7; // `i32` // 型はコンテキストから推論することもできます。 let mut inferred_type = 12; // 型 i64 は別の行から推論されます。 inferred_type = 4294967296i64; // 可変変数の値は変更できます。 let mut mutable = 12; // 可変な `i32` mutable = 21; // エラー!変数の型は変更できません。 mutable = true; // 変数はシャドーイングによって上書きできます。 let mutable = true; /* 複合型 - 配列とタプル */ // 配列のシグネチャは、型 T と長さから [T; length] として構成されます。 let my_array: [i32; 5] = [1, 2, 3, 4, 5]; // タプルは異なる型の値のコレクションであり、 // 丸括弧 () を使用して構築されます。 let my_tuple = (5u32, 1u8, true, -5.04f32); }