基本データ型
Rustは様々な基本データ型の使用をサポートしています。以下がその例です。
スカラー型
- 符号付き整数:
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; /* Compound types - Array and Tuple */ // Array signature consists of Type T and length as [T; length]. let my_array: [i32; 5] = [1, 2, 3, 4, 5]; // Tuple is a collection of values of different types // and is constructed using parentheses (). let my_tuple = (5u32, 1u8, true, -5.04f32); }