列挙体

Rustの列挙体(enum)は、複数の関連する値を一つの型としてまとめるために使われます。以下に、Rustの列挙体の基本的な使い方を紹介します。

基本的な定義

Rustでは、enumキーワードを使って列挙体を定義します。例えば、色を表す列挙体を定義する場合は次のようになります。

#![allow(unused)]
fn main() {
enum Color {
    Red,
    Green,
    Blue,
}
}

値を持つ列挙体

列挙体の各バリアントに値を持たせることもできます。例えば、RGBカラーを表す場合は次のように定義します。

#![allow(unused)]
fn main() {
enum Color {
    RGB(u8, u8, u8),
    RGBA(u8, u8, u8, u8),
}
}

列挙体の使用

列挙体の値を使うには、match文を使って各バリアントに対して処理を行います。

enum Color {
    RGB(u8, u8, u8),
    RGBA(u8, u8, u8, u8),
}

fn main() {
    let color = Color::RGB(0, 255, 0);

    match color {
        Color::RGB(r, g, b) => println!("RGB({}, {}, {})", r, g, b),
        Color::RGBA(r, g, b, a) => println!("RGBA({}, {}, {}, {})", r, g, b, a),
    }
}

列挙体の利点

  • 型安全性: 列挙体を使うことで、特定の値の集合を型として扱うことができ、型安全性が向上します。
  • 可読性: コードの可読性が向上し、意図が明確になります。
  • パターンマッチング: match文を使って、各バリアントに対する処理を簡潔に記述できます。