#データには型がある
型とはデータの分類です。Rustでは以下のような型があります。
型 | データの例 | 説明 |
---|---|---|
bool | true,false | 真偽を表すデータ |
char | 'A', '4', 'Ψ' | 一文字のユニコード |
str | "UTF-8の文字列" | UTF-8の文字列 |
以下は数値を表す型です。末尾の数字はデータを表すのに必要なbit数です。
型 | 最小値 | 最大値 |
---|---|---|
i8 | -128 | 127 |
i16 | -32768 | 32767 |
i32 | -2147483648 | 2147483647 |
i64 | -9223372036854775808 | 9223372036854775807 |
u8 | 0 | 255 |
u16 | 0 | 65535 |
u32 | 0 | 4294967295 |
u64 | 0 | 18446744073709551615 |
isize | -9223372036854775808 | 9223372036854775807 |
usize | 0 | 18446744073709551615 |
f32 | -3.4028235e38 | 3.4028235e38 |
f64 | -1.7976931348623157e308 | 1.7976931348623157e308 |
####余談
最大値、最小値は以下のように知ることが出来ます。
std
::
型
::
MAX
→最大値
std
::
型
::
MIN
→最小値
以下はこの記事のテーブルを作成したコード。
マクロで簡単にできると思ったのですがうまくいかず・・・
結局置換機能を使って12行分書きました。
fn main() {
println!("|型|最小値|最大値|");
println!("|:--|:--|:--|");
println!("|i8|{min}|{max}|", min = std::i8::MIN, max = std::i8::MAX);
println!("|i16|{min}|{max}|", min = std::i16::MIN, max = std::i16::MAX);
println!("|i32|{min}|{max}|", min = std::i32::MIN, max = std::i32::MAX);
println!("|i64|{min}|{max}|", min = std::i64::MIN, max = std::i64::MAX);
println!("|u8|{min}|{max}|", min = std::u8::MIN, max = std::u8::MAX);
println!("|u16|{min}|{max}|", min = std::u16::MIN, max = std::u16::MAX);
println!("|u32|{min}|{max}|", min = std::u32::MIN, max = std::u32::MAX);
println!("|u64|{min}|{max}|", min = std::u64::MIN, max = std::u64::MAX);
println!("|isize|{min}|{max}|", min = std::isize::MIN, max = std::isize::MAX);
println!("|usize|{min}|{max}|", min = std::usize::MIN, max = std::usize::MAX);
println!("|f32|{min:e}|{max:e}|", min = std::f32::MIN, max = std::f32::MAX);
println!("|f64|{min:e}|{max:e}|", min = std::f64::MIN, max = std::f64::MAX);
}