English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Rust データ型

Rust言語の基本データ型には以下のようなものがあります。

整数型(Integer)

整数型はビット長と符号の有無に応じて以下のような種類に分類されます:

ビット長有符号無符号
8-biti8u8
16-biti16u16
32-biti32u32
64-biti64u64
128-biti128u128
archisizeusize

isizeとusizeの二つの整数型を使用し、データの大きさを測ります。これらのビット長は実行するターゲットプラットフォームによって異なります。 32 ビットアーキテクチャのプロセッサは 32 ビット長度の整数型。

整数の表現方法には以下のようなものがあります:

進数
デシマル98_222
ヘキサデシマル0xff
オクタル0o77
バイナリ0b1111_0000
バイト(のみu8 型)b'A'

明らかに、整数の中間に下線が存在する場合があります。このデザインは、非常に大きな数字を入力する際に、数字の値がどの程度か簡単に判断できるようにするためのものです。

浮動小数点数型(Floating-Point)

Rustは他の言語と同様に 32 ビット浮動小数点数(f32)と 64 ビット浮動小数点数(f64)。デフォルトでは、64.0は 64 ビット浮動小数点数、なぜなら現代のコンピュータプロセッサは両方の浮動小数点数の計算速度がほぼ同じですが、 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は ++ そして --、なぜならこれらの演算子が変数の前後に現れるとコードの可読性が影響され、開発者が変数の変更に対する意識能力が弱くなるからです。

ブール型

ブール型はboolで表され、値はtrueまたはfalseに限られます。

文字型

文字型はcharで表されます。

Rustのchar型のサイズは 4 1バイトで、Unicodeスケール値を表すため、それが中国語、日本語、韓国語の文字や、表情符号や零幅スペースなどの非英文字符をサポートします。

+0000 から U+D7FF まで、U+E000 から U+10FFFF(両端を含む)ですが、"文字"という概念はUnicodeには存在しません。したがって、あなたの"文字"に対する直感は、Rustの文字概念と一致しない可能性があります。したがって、一般的にはUTF-8 文字(英文字符以外の文字)は可能な限り文字列に含めます。

注意:由于中文文字编码有两种(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; // 正確