Rustの型
【整数】 スタックで保持されます。
i8 -128〜127
i16 -32768〜32767 (3万2千767)
i32 -2147483648〜2147483647 (21億4748万3千647)
i64 -9223372036854775808〜9223372036854775807 (922京3372兆368億5477万5千807)
u8 0〜255
u16 0〜65535 (6万5千535)
u32 0〜4294967295 (42億9496万7千295)
u64 0〜18446744073709551616 (1844京6744兆737億955万1千616)
isize パソコンのCPU次第で変動 最近の64ビットCPUパソコンの場合はisize = i64
usize パソコンのCPU次第で変動 最近の64ビットCPUパソコンの場合はusize = u64
Rustのi32はJavaのintに相当します。
Rustのi64はJavaのlongに相当します。
【浮動小数点数】 スタックで保持されます。
f32
f64
Rustは基本f64です。
Rustのf32はJavaのfloatに相当します。
Rustのf64はJavaのdoubleに相当します。
【論理値】 スタックで保持されます。
bool trueかfalse
【文字型】 スタックで保持されます。
char Unicode1文字
【文字列型】 ヒープで保持されます。
String
&str (Rustで「文字列スライス」と呼ばれている文字列の参照)
例えばlet string = String::from("ABC");と作成した場合はString型なので、関数の引数には&stringと参照渡しする必要が有ります。
例えばlet string = "ABC";は&strです。
&strをStringに変換するとメモリを新たに使用してしまうため避ける事ができる場合は避けるべきだそうです。
&strをStringに変換する必要が有る場合は、例えば"ABC".to_string()のようにto_stringを利用します。
main.rs
――――――――――――――――――――
fn main() {
let string = String::from("ABC"); //String型
let str = "DEF"; //&str
println!("{}", str.eq(&string)); //false
//println!("{}", str.eq(string));は参照渡しではないのでコンパイルエラーです。
println!("{}", str.eq(str)); //true
//println!("{}", string);はマクロで参照に変換しているのかコンパイルを通過します。
}
――――――――――――――――――――
【コレクション】 配列とは異なり、ヒープで保持されます。
Vec
std::collections::HashMap
【コレクションのコード例】
let mut list = vec![1, 2, 3];
let mut number_list = Vec::new();
number_list.push(10);
number_list.push(20);
use std::collections::HashMap;
let mut map = HashMap::new();
map.insert(String::from("年齢"), 20);
map.insert(String::from("体重"), 60);
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます