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);

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る