ウェブサイト検索

Rustの組み込みデータ型の概要


Rust のネイティブ データ型を理解し、アプリケーションで効果的に使用できるようにしましょう。

Rust は、パフォーマンス、信頼性、セキュリティを目的に設計された静的型付けの最新のプログラミング言語です。他の静的型付け言語と同様に、コンパイル時に Rust のデータ型を宣言します。これにより、コードを実行する前に型エラーを見つけやすくなります。

Rust は、スカラー、複合、参照型、構造体、列挙型、および文字列を提供します。その型推論は、静的型付け言語の安全性を維持しながら簡潔なコードを作成するための機能を提供します。

Rustの整数

Rust は、ビット数に基づいて分類された符号付き整数型と符号なし整数型を提供します。符号付き整数型は、8 ビット、16 ビット、それぞれ 32 ビットと 64 ビットの符号付き整数。また、8 ビット、16 を表す、u8u16u32、および u64 の符号なし整数型もサポートします。 -ビット、32 ビット、および 64 ビットの符号なし整数。

// signed integers
let a: i8 = -10;
let b: i16 = -2048;
let c: i32 = -2147483648;
let d: i64 = -9223372036854775808;
// unsigned integers
let e: u8 = 255;
let f: u16 = 65535;
let g: u32 = 4294967295;
let h: u64 = 18446744073709551615;

Rust はデフォルトで整数リテラルに i32 型を使用します。

Rustの浮動小数点型

Rust は、 単精度および倍精度浮動小数点数を表す浮動小数点型としてf32f64 を提供します。 f32 タイプは値の格納に 32 ビットを使用し、f64 タイプは 64 ビットを使用します。

Rust の浮動小数点数は、浮動小数点演算の IEEE 754 標準に従います。

let a = 3.14159265358979323_f32;
let b = 2.718281828459045235_f64;

Rustブール値の使用

Rust はまたは値を表すブール型を提供します。ブール値は、プログラムの意思決定のための条件ステートメントや制御フロー ステートメントでよく使用されます。

let variable_1: bool = true;
let variable_2: bool = false;

ブール値は、等価演算子 == および不等演算子 != を使用して比較できます。 Rust では、bool 値に対する比較演算子 <、><=、 >= が定義されていません。 。

let variable_1: bool = true;
let variable_2: bool = false;
if variable_1 == variable_2 {
    println!("variable_1 is equal to variable_2");
} else if variable_1 != variable_2 {
    println!("variable_1 is not equal to variable_2");
}

文字型

Rust のchar 型は、Unicode 標準の任意の文字を表すことができる単一の Unicode スカラー値を表します。一重引用符を使用してchar 値を指定できます。

// Declaring a char value
let c = 'a';

char 型は、Rust で絵文字を扱う場合に役立ちます。

Rustのタプル

タプル データ構造を使用すると、複数の値を 1 つの複合値にグループ化できます。これらの値は同じタイプまたは異なるタイプを持つことができます。タプルを宣言するには、かっこで囲んだ値のカンマ区切りリストとしてタプルを記述します。

32 ビット整数、文字列、および float64 値を使用してタプルを宣言する方法を次に示します。

let tup: (i32, &str, f64) = (500, "Hello", 3.14);

タプルは固定長であり、タプルを使用して関数から複数の値を返したり、複数の値を単一の引数として関数に渡すことができます。

タプルの個々の要素にアクセスするには、パターン マッチングを使用してタプルを構造化するか、ドット (.) 構文とインデックスを使用して個々の要素に直接アクセスします。

パターン マッチングを使用して構造体の個々の要素にアクセスする方法は次のとおりです。

let my_tuple = (10, "Hello, World!", false);
let (x, y, z) = my_tuple;
println!("The first element is: {}", x);
println!("The second element is: {}", y);
println!("The third element is: {}", z);

ドット表記を使用して個々の要素にアクセスする方法は次のとおりです。

let my_tuple = (10, "Hello, World!", false);
println!("The first element is: {}", my_tuple.0);
println!("The second element is: {}", my_tuple.1);
println!("The third element is: {}", my_tuple.2);

タプルは、関連するデータを 1 つの値にグループ化する場合に非常に便利です。控えめに使用すると、コードの可読性も向上します。

Rustの配列

配列は、固定長の同じ型の要素のコレクションです。 Rust 配列は、カンマで区切られた角括弧で囲まれた値のリストとして記述します。

Rust で配列を宣言する方法は次のとおりです。

let arr = [1, 2, 3, 4, 5];

配列を宣言した後で配列内の要素の数を変更することはできませんが、インデックスを使用して配列の個々の要素にアクセス、変更、操作することはできます。

let mut my_array = [1, 2, 3, 4, 5];
// Accessing elements
println!("The first element is: {}", my_array[0]);
// Modifying elements
my_array[0] = 100;
println!("The first element after modification is: {}", my_array[0]);
// Looping over an array and manipulating elements
for i in 0..my_array.len() {
    my_array[i] *= 2;
}
// printing the array
println!("The array after manipulation: {:?}", my_array);

Rust 配列はスタックに格納され、連続したメモリ割り当てがあるため、配列の要素へのアクセスは高速かつ効率的です。これにより、配列は多くの要素を保存および処理する必要がある状況に適したものになります。

Rust スライスの操作

スライスは、コレクション内の要素の連続したシーケンスを参照できるようにするデータ構造です。スライスは &[T] タイプで表されます。ここで、T はスライスに格納される要素のタイプです。

fn main() {
    // declare an array
    let my_array = [1, 2, 3, 4, 5];
    // create a slice from the array
    let my_slice = &my_array[1..3];
    // print the slice
    println!("Slice: {:?}", my_slice);
}

範囲構文 .. が、開始インデックスと終了より 1 つ大きいインデックスを使用して配列からスライスを抽出する方法に注目してください。

スライスは動的であるため、Rust は実行時にスライスの長さを決定できます。ヒープ割り当てを必要とせずに、スライスを引数として関数に渡すこともできます。

一般に、スライスは文字列操作やデータのサブセットを関数に渡すために使用します。これらは Rust でコレクションを管理するための強力かつ効率的なツールであり、配列のより柔軟な代替手段を提供します。

WebAssembly を利用したフロントエンド Web アプリを Rust で構築できる

データ型の知識は、アプリケーションの構築中のほとんどの操作でデータ型を使用するため、Rust を始める上で極めて重要です。

WebAssembly は、最新の Web ブラウザ上で動作し、ネイティブに近いパフォーマンスを発揮する低レベルのバイナリ形式です。これを使用すると、さまざまな言語でコードを記述し、それを WebAssembly にトランスパイルできます。

WebAssembly は Rust を通じて採用が進んでいます。 Rust で WebAssembly を利用したフロントエンドを構築するために使用できる、Yew、Sycamore、Seed などのフレームワークが多数あります。

関連記事: