以下是一个简单的枚举示例:
// 定义一个名为 `Color` 的枚举
enum Color {
Red,
Green,
Blue,
}
fn main() {
// 创建一个 `Color` 枚举的实例
let color = Color::Red;
// 匹配枚举的变体
match color {
Color::Red => println!("It's red!"),
Color::Green => println!("It's green!"),
Color::Blue => println!("It's blue!"),
}
}
在上面的例子中,我们定义了一个名为 Color 的枚举,它有三个变体:Red、Green 和 Blue。然后,我们创建了一个 Color 枚举的实例,并使用 match 表达式来匹配枚举的变体,以执行相应的操作。
枚举还可以携带数据,使其更加灵活。以下是一个带有数据的枚举示例:
// 定义一个名为 `Shape` 的枚举,其中的变体携带不同类型的数据
enum Shape {
Circle(f64), // 圆,携带半径数据
Rectangle(u32, u32), // 矩形,携带宽度和高度数据
}
fn main() {
// 创建一个 `Shape` 枚举的实例
let circle = Shape::Circle(5.0);
let rectangle = Shape::Rectangle(10, 20);
// 匹配枚举的变体,并提取携带的数据
match circle {
Shape::Circle(radius) => println!("Circle with radius: {}", radius),
Shape::Rectangle(width, height) => println!("Rectangle with width {} and height {}", width, height),
}
match rectangle {
Shape::Circle(radius) => println!("Circle with radius: {}", radius),
Shape::Rectangle(width, height) => println!("Rectangle with width {} and height {}", width, height),
}
}
在这个例子中,我们定义了一个名为 Shape 的枚举,其中包含两个变体:Circle 和 Rectangle。这两个变体都携带不同类型的数据。然后,我们创建了 Shape 枚举的两个实例,并使用 match 表达式来匹配枚举的变体并提取携带的数据。
Rust 的枚举提供了一种强大的工具,用于表达代码中可能的不同状态。它在编写安全、清晰的代码时具有很大的灵活性。
转载请注明出处:http://www.zyzy.cn/article/detail/6795/Rust