Rust言語にはいくつかの基本的なデータ型があります。
目次
整数型(Integer)
整数型は整数と略され、ビットの長さや符号の有無により以下の型に分類されます。
ビットの長さ | 符号あり | 符号なし |
8-bit | i8 | u8 |
16-bit | i16 | u16 |
32-bit | i32 | u32 |
64-bit | i64 | u64 |
128-bit | i128 | u128 |
arch | isize | usize |
isizeとusize、この2つの整数型は、データのサイズを測定するために使用されます。ビットの長さは、実行しているターゲットプラットフォームによって異なります。32ビットアーキテクチャプロセッサの場合、32ビット長整数型を使用します。
整数を表現する方法は次となります。
进制 | 例 |
10進数 | 98_222 |
16進数 | 0xff |
8進数 | 0o77 |
バイナリ | 0b1111_0000 |
バイト( u8型のみ表示する) | b’A’ |
明らかに、ある整数の中央にアンダースコアがあります。この設計により、大きい数値を入力するときに数値の値を判断しやすくなります。
浮動小数点型(Floating-Point)
Rustは、他の言語と同様に、32ビット浮動小数点数(f32)と64ビット浮動小数点数(f64)をサポートしています。現在のコンピュータープロセッサは2つの浮動小数点数に対する計算速度がほぼ同じですが、64ビット浮動小数点数の方が精度が高いため、デフォルトでは64.0は64ビット浮動小数点数を表します。
実例
fn main() {
let x = 2.0; // f64
let y: f32 = 3.0; // f32
}
数学演算
プログラムを使用して、数学演算を表します。
実例
fn main() {
let sum = 5 + 10; // 加算
let difference = 95.5 - 4.3; // 減算
let product = 4 * 30; // 乗算
let quotient = 56.7 / 32.2; // 除算
let remainder = 43 % 5; // 剰余演算
}
多くの算術記号の後ろに=記号を追加することは自動計算を意味します。例えば:
sum += 1 は sum = sum + 1と同じです。
ヒント:Rustは++と-をサポートしていません。変数の前後にこれら2つの演算子が存在する場合、コードの可読性に影響を与え、変数の変更に対する開発者の認識が弱くなるためです。
ブール値
ブール値はboolで表され、値はtrueまたはfalseのみになります。
char型
char型はcharで表されます。
Rustのchar型のサイズが4バイトで、Unicodeスカラ値を表します。つまり、日本語、韓国語、中国語の文字などの英語以外の文字をサポートでき、絵文字やゼロ幅スペースもRustには有効なchar値です。
Unicode値の範囲は、U +0000からU + D7FFおよびU + E000からU + 10FFFFまでです。(両端を含む) ただし、「char」という概念はUnicodeには存在しないため、「char」についての直感は、Rustの文字の概念と一致しない場合があります。そのため、文字列を使用してUTF-8文字を格納することをお勧めします。(英語以外の文字はできるだけ文字列に表示されます)
ヒント:日本語の文字コードは2つ(GBKとUTF-8)があるため、プログラミングで日本語の文字列を使用すると、文字が文字化けする可能性があります。これは、ソースプログラムとコマンドラインの文字コードに一致しないため、Rustの文字列と文字でUTF-8エンコーディングを使用する必要があります。そうしないと、コンパイラがエラーを報告します。
複合型
タプルは()に含まれるデータのセットが、さまざまな型のデータを含めることができます。
実例
let tup: (i32, f64, u8) = (500, 6.4, 1);
// tup.0 = 500
// tup.1 = 6.4
// tup.2 = 1
let (x, y, z) = tup;
// y = 6.4
配列は[]で同じ型のデータを含めます。
実例
let a = [1, 2, 3, 4, 5];
// a は長さが5である整数配列です
let b = ["January", "February", "March"];
// b は長さが3である文字列配列です
let c: [i32; 5] = [1, 2, 3, 4, 5];
// c は長さが5であるi32配列です
let d = [3; 5];
// let d = [3, 3, 3, 3, 3]に相当します;
let first = a[0];
let second = a[1];
// 配列にアクセスします
a[0] = 123; // エラー:配列 a は不変です
let mut a = [1, 2, 3];
a[0] = 4; // 正解
コメントを残す