🦀
Rustのenum型入門
Rustでのenum型とは?
Rustプログラミング言語では、enum
型を使用して、複数の値を一つの型で表現することができます。この記事では、enum
型の基本的な使い方と理解を初心者に向けて解説します。
概要
enum
型(列挙型)は、複数の値を一つの型で定義し、その型の値がそれらの値のいずれかであることを表現します。それぞれの値をバリアント(variant)と呼びます。
目次
enum
の定義
基本的なenum
は以下のように定義されます。
enum Direction {
North,
South,
East,
West,
}
enum
とmatch
の使い方
enum
型の値は、match
文を使用してパターンマッチングをすることが一般的です。
let direction = Direction::North;
match direction {
Direction::North => println!("We are heading north!"),
Direction::South => println!("We are heading south!"),
Direction::East => println!("We are heading east!"),
Direction::West => println!("We are heading west!"),
}
enum
でのデータの保持
enum
バリアントは、データを保持することもできます。以下は、その例です。
enum Shape {
Circle(f64), // 半径
Rectangle(f64, f64), // 幅と高さ
Square(f64), // 一辺の長さ
}
let shape = Shape::Circle(5.0);
match shape {
Shape::Circle(radius) => println!("It's a circle with radius {}", radius),
Shape::Rectangle(width, height) => println!("It's a rectangle with width {} and height {}", width, height),
Shape::Square(side) => println!("It's a square with side length {}", side),
}
enum
の使用
標準ライブラリでのRustの標準ライブラリでは、enum
型が頻繁に使用されています。Result
型とOption
型は、特に良い例です。以下は、それぞれの型の定義の一部です。
Result
型
pub enum Result<T, E> {
Ok(T), // 成功した場合の値
Err(E), // エラーが発生した場合の値
}
Option
型
pub enum Option<T> {
None, // 値が存在しない場合
Some(T), // 値が存在する場合
}
これらのenum
型は、Rustプログラミングで非常に一般的で、エラーハンドリングやオプショナルな値の取り扱いなど、多岐にわたる用途で使用されています。
まとめ
-
enum
型は、複数の値を一つの型で表現します。 -
enum
型は、バリアントにデータを保持することも可能です。 -
match
文と組み合わせることで、パターンマッチングを行い、コードをより明確にします。 - 標準ライブラリの
Result
やOption
などは、enum
の一般的な使用例であり、多岐にわたる用途で活用されています。
enum
型はRustのコードで頻繁に見かける概念です。
この記事が、enum
型の基本的な理解の助けとなることを願っています。
Discussion