Rust 枚举类学习笔记
什么是枚举类?
枚举类是一种 Rust 数据类型,它可以表示多种可能的值,每个值都被称为枚举变量,并且每个变量可以有一个特定的名称和具体的值。
Rust 的枚举类可以包括简单的整数和字符串值,也可以包括结构体和元组等更复杂的类型。
Rust 的枚举类使用 enum
关键字来定义,它的语法如下:
rustCopy Codeenum EnumName {
Variant1,
Variant2,
// ...
}
枚举类的示例
以下是一个简单的枚举类示例:
rustCopy Codeenum Color {
Red,
Green,
Blue,
}
fn main() {
let favorite_color = Color::Blue;
match favorite_color {
Color::Red => println!("The color is red!"),
Color::Green => println!("The color is green!"),
Color::Blue => println!("The color is blue!"),
}
}
在上面的代码中,我们首先定义了一个名为 Color
的枚举类,它包含三个变量:Red
、Green
和 Blue
。然后我们使用 let
关键字定义了一个名为 favorite_color
的变量,它的值为 Color::Blue
。
接下来,我们使用 match
表达式来比较 favorite_color
的值,并执行相应的代码块。由于 favorite_color
的值为 Color::Blue
,因此将会执行 Color::Blue => println!("The color is blue!");
这一行代码,打印出 "The color is blue!"
。
带有数据的枚举类
Rust 的枚举类也可以包含具有数据的变量。例如,下面是一个包含三种不同单位的长度枚举类:
rustCopy Codeenum Length {
Centimeters(u32),
Meters(u32),
Kilometers(u32),
}
fn main() {
let len = Length::Kilometers(5);
match len {
Length::Centimeters(cm) => {
println!("Length is {} centimeters", cm);
},
Length::Meters(m) => {
println!("Length is {} meters", m);
},
Length::Kilometers(km) => {
println!("Length is {} kilometers", km);
},
}
}
在上面的示例中,我们定义了一个名为 Length
的枚举类,并为每个变量附加了一个 u32
类型的值。然后我们使用 match
表达式来比较 len
的值,并根据它的类型执行相应的代码块。
如果 len
的值为 Length::Kilometers(5)
,则将运行以下代码块,并打印出 "Length is 5 kilometers"
。
总结
本文介绍了 Rust 中枚举类的基本概念和用法,以及如何定义带有数据的枚举类。对于那些刚开始学习 Rust 的人来说,这是一个非常重要的主题。希望这篇笔记能够帮助您更好地理解和使用 Rust 中的枚举类!