基本データ型
Rustは様々な基本データ型(primitives
)の使用をサポートしています。以下がその例です。
スカラー型
- 符号付き整数:
i8
,i16
,i32
,i64
,i128
,isize
(ポインタのサイズ) - 符号無し整数:
u8
,u16
,u32
,u64
,u128
,usize
(ポインタのサイズ) - 浮動小数点数:
f32
,f64
char
:'a'
,'α'
,'∞'
などのUnicodeのスカラー値bool
:true
またはfalse
- ユニット型:
()
が唯一の値
ユニット型はその値がタプルですが、複合型とはみなされません。内部に複数の値を含んでいるわけではないからです。
複合型
- 配列: e.g.
[1, 2, 3]
など - タプル: e.g. (1, true)
変数は常に 型指定(type annotate
)可能 です。数値型の場合はさらにサフィックスでの指定が可能です。指定しない場合デフォルトになります。例えば整数はi32
が、浮動小数点はf64
がデフォルトです。また、Rustは文脈から型を推定することもできます。
fn main() { // Variables can be type annotated. // 変数に型を指定 let logical: bool = true; let a_float: f64 = 1.0; // Regular annotation // 通常の型指定 let an_integer = 5i32; // Suffix annotation // サフィックスによる型指定 // Or a default will be used. // サフィックスを指定しない場合、デフォルトを選択 let default_float = 3.0; // `f64` let default_integer = 7; // `i32` // A type can also be inferred from context // 型を文脈から推定することも可能 let mut inferred_type = 12; // Type i64 is inferred from another line // 型 i64 は次行の内容に基づいて推定 inferred_type = 4294967296i64; // A mutable variable's value can be changed. // ミュータブルな変数は値を変更できる let mut mutable = 12; // Mutable `i32` // ミュータブルな `i32`. mutable = 21; // Error! The type of a variable can't be changed. // エラー! ミュータブルな変数でも型は不変 mutable = true; // Variables can be overwritten with shadowing. // 変数はシャドーイングによって上書きできる let mutable = true; }