モジュールのレッスン (2/2)
プリミティブ型
Rust は 静的に型付けされた 言語です。つまり、コンパイル時にすべての変数の型を知っている必要があります。通常、コンパイラは割り当てられた値に基づいて型を推測できますが、場合によっては手動で指定することが必要または役立つ場合があります。
Rust のプリミティブ型は、スカラー (単一値) と 複合 (値のグループ) の 2 つの主要なカテゴリに分類されます。
スカラー型
スカラー型は単一の値を表します。 Rust には 4 つの基本的なスカラー型があります。
- 整数: 整数。署名付き (
i8、i16、i32、i64、i128、isize) または署名なし (u8、u16、u32、u64、u128、usize)。デフォルトのタイプはi32です。 - 浮動小数点: 小数点を含む数値。
f32またはf64(倍精度、デフォルト) にすることができます。 - ブール値:
trueまたはfalseで論理的真理を表します (boolと入力します)。 - 文字: 一重引用符で囲まれた単一の Unicode スカラー値 (
char型)、例:'a'、'ℤ'、または絵文字'😻'。
明示的な型アノテーションの例:
let x: i64 = 42;
let y: f64 = 3.1415;
let is_rust_awesome: bool = true;
let heart_emoji: char = '❤';複合タイプ
複合型では、複数の値を 1 つの型にグループ化できます。 Rust には 2 つの主要なプリミティブ複合タイプがあります。
タプル
タプル は、さまざまな型の値を固定サイズのコレクションにグループ化します。
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;配列 (固定サイズのリスト)
配列は、同じ型の複数の要素をグループ化し、スタックに保存される固定サイズのコレクションにします。
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]) |
自分で試してみてください
年齢 30 (整数) とスコア 95.5 (浮動小数点) を含む stats という名前のタプルを宣言します。次に、インデックスを使用してタプルの 2 番目の要素に直接アクセスし、スコアを画面に出力します。
ヒントを表示
「let stats = (30, 95.5);」でタプルを作成します。 `println!` マクロ内の `stats.1` を使用して 2 番目の要素にアクセスします。
3 回の試行後に解決策が利用可能になります
1 ~ 5 の整数値を含むnumbers という名前の配列を宣言します。println! を使用して、配列の 3 番目の要素 (インデックス 2) を画面に出力します。
ヒントを表示
`letnumbers = [1, 2, 3, 4, 5];` で配列を宣言し、`[2]` でインデックスを付けて 3 番目の要素にアクセスします。
3 回の試行後に解決策が利用可能になります
タプル `let point = (10, 20);` を指定すると、構造化を使用して値を `x` と `y` という名前の 2 つの変数に抽出します。次に、「x」と「y」の合計を出力します。
ヒントを表示
構文 `let (x, y) = point;` を使用してタプルを構造解除し、`println!` で変数を合計します。
3 回の試行後に解決策が利用可能になります