はじめに
この記事は 脳内メモリが不足している Rinrin が、
学習中に Rust の仕様を忘れたとき用に書いたものだ。
故に 情報が古かったり、間違っている場合もある。
そんな時は言ってくれれば多分直す( 'ω')
目次♪
スカラー型
スカラー型とは単独の値を持つ型のこと
整数や浮動小数点数, 論理値や文字などがある
整数型
整数はそのまま 小数じゃない数値のこと
大きく分けて2種類ある。
符号付きと符号無しだ
符号付きは負の数も扱えるが最大値が小さい
符号無しは負の数を扱えないが最大値が大きい
符号付き
型 | 大きさ | 最小値 | 最大値 |
---|---|---|---|
i8 | 8bit | -128 | 127 |
i16 | 16bit | -32768 | 32767 |
i32 | 32bit | -2147483648 | 2147483647 |
i64 | 64bit | -9223372036854775808 | 9223372036854775807 |
i128 | 128bit | -1701411834604692317 31687303715884105728 |
1701411834604692317 31687303715884105727 |
isize | arch | -9223372036854775808 | 9223372036854775807 |
符号無し
型 | 大きさ | 最小値 | 最大値 |
---|---|---|---|
u8 | 8bit | 0 | 255 |
u16 | 16bit | 0 | 65535 |
u32 | 32bit | 0 | 4294967295 |
u64 | 64bit | 0 | 18446744073709551615 |
u128 | 128bit | 0 | 3402823669209384634 63374607431768211455 |
usize | arch | 0 | 18446744073709551615 |
特に注釈が無ければ整数型は i32
となる
浮動小数点型
これはつまり小数
f32
と f64
があり f64
が基準型
そして f32
は単精度浮動小数点数、
f64
は倍精度浮動小数点数 とも言う
型 | 大きさ | 名称 |
---|---|---|
f32 | 32bit | 単精度浮動小数点数 |
f64 | 64bit | 倍精度浮動小数点数 |
論理値型
真偽値(boolean)のこと
true
と false
の2種類がある
文字型
Unicode のスカラー値。
つまり1文字を扱う型。
ダブルクォーテーション"
ではなく、シングルクォーテーション'
を使って文字を囲う
let c: char = 'A'
let c: char = '🤓'
複合型
複合型は複数の値を1つの型にまとめたもの
タプル型
丸括弧の中にカンマ区切りのリストを書いて生成する
タプル内の位置ごとで型が異なっていても良い
let t = (64, 128.0, true, 'X');
タプルの中身を分配したりも出来る
let t_v2 = (0, 1, 2);
let (i, ii, iii) = t_v2;
println!("{}, {}, {}", i, ii, iii); //< 0, 1, 2
カンマで区切って指数を指定してアクセスすることも可能
let t_v3 = ('a', 'b', 'c');
println!("{}", t_v3.1); //< b
可変にすれば上書きも可能
let mut t_v4 = ("ほうれん草", "しめじ", "ジーマーミ豆腐");
println!("{:?}", t_v4); //< ("ほうれん草", "しめじ", "ジーマーミ豆腐")
t_v4.2 = "ピータン豆腐";
println!("{:?}", t_v4); //< ("ほうれん草", "しめじ", "ピータン豆腐")
配列型
配列は全要素が同じ型でなければならない。
そして長さ(容量)を変えることもできない
生成は丸括弧の代わりに大括弧[]
を使う
let l = ["报連草", "占地", "皮蛋豆腐"];
直接アクセスは カンマで区切らずに指数を大括弧で囲って指定
let l_v2 = ["麦芽コーヒー", "抹茶", "紅茶"];
println!("{}", l_v2[2]); //< 抹茶
スカラ型について詳しくはこちらを参照