メインコンテンツにスキップ
モジュール 1 · レッスン 2 / 2コース内の 2/14~10 min
モジュールのレッスン (2/2)

プリミティブ型

Rust は 静的に型付けされた 言語です。つまり、コンパイル時にすべての変数の型を知っている必要があります。通常、コンパイラは割り当てられた値に基づいて型を推測できますが、場合によっては手動で指定することが必要または役立つ場合があります。

Rust のプリミティブ型は、スカラー (単一値) と 複合 (値のグループ) の 2 つの主要なカテゴリに分類されます。

スカラー型

スカラー型は単一の値を表します。 Rust には 4 つの基本的なスカラー型があります。

  1. 整数: 整数。署名付き (i8、i16、i32、i64、i128、isize) または署名なし (u8、u16、u32、 u64、u128、usize)。デフォルトのタイプは i32 です。
  2. 浮動小数点: 小数点を含む数値。 f32 または f64 (倍精度、デフォルト) にすることができます。
  3. ブール値: true または false で論理的真理を表します (bool と入力します)。
  4. 文字: 一重引用符で囲まれた単一の Unicode スカラー値 (char 型)、例: 'a'、'ℤ'、または絵文字 '😻'。

明示的な型アノテーションの例:

Rust
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';

複合タイプ

複合型では、複数の値を 1 つの型にグループ化できます。 Rust には 2 つの主要なプリミティブ複合タイプがあります。

タプル

タプル は、さまざまな型の値を固定サイズのコレクションにグループ化します。

Rust
let person: (String, i32) = (String::from("Alice"), 30);

// Destructuring to extract values
let (name, age) = person;

// Direct access with index using dot (.)
let name_direct = person.0;
let age_direct = person.1;

配列 (固定サイズのリスト)

配列は、同じ型の複数の要素をグループ化し、スタックに保存される固定サイズのコレクションにします。

Rust
let numbers = [1, 2, 3, 4, 5]; // Inferred as [i32; 5]
let first = numbers[0]; // Access by index
let third = numbers[2];

配列境界外のインデックス(numbers[10]など)にアクセスしようとすると、Rustは不正なメモリアクセスを許可する代わりに、実行時にすぐにクラッシュ(パニック)します。

比較

特集タプル配列
要素の種類異なる場合があります同じでなければなりません
サイズ修正済み修正済み
アクセスドットによるインデックス (例: .0)角括弧 (例: [0])

自分で試してみてください

運動#rust.m1.l2.e1
試行回数: 0読み込み中…

年齢 30 (整数) とスコア 95.5 (浮動小数点) を含む stats という名前のタプルを宣言します。次に、インデックスを使用してタプルの 2 番目の要素に直接アクセスし、スコアを画面に出力します。

エディターを読み込み中…
ヒントを表示

「let stats = (30, 95.5);」でタプルを作成します。 `println!` マクロ内の `stats.1` を使用して 2 番目の要素にアクセスします。

3 回の試行後に解決策が利用可能になります

運動#rust.m1.l2.e2
試行回数: 0読み込み中…

1 ~ 5 の整数値を含むnumbers という名前の配列を宣言します。println! を使用して、配列の 3 番目の要素 (インデックス 2) を画面に出力します。

エディターを読み込み中…
ヒントを表示

`letnumbers = [1, 2, 3, 4, 5];` で配列を宣言し、`[2]` でインデックスを付けて 3 番目の要素にアクセスします。

3 回の試行後に解決策が利用可能になります

運動#rust.m1.l2.e3
試行回数: 0読み込み中…

タプル `let point = (10, 20);` を指定すると、構造化を使用して値を `x` と `y` という名前の 2 つの変数に抽出します。次に、「x」と「y」の合計を出力します。

エディターを読み込み中…
ヒントを表示

構文 `let (x, y) = point;` を使用してタプルを構造解除し、`println!` で変数を合計します。

3 回の試行後に解決策が利用可能になります