Rust 枚举类学习笔记

什么是枚举类?

枚举类是一种 Rust 数据类型,它可以表示多种可能的值,每个值都被称为枚举变量,并且每个变量可以有一个特定的名称和具体的值。

Rust 的枚举类可以包括简单的整数和字符串值,也可以包括结构体和元组等更复杂的类型。

Rust 的枚举类使用 enum 关键字来定义,它的语法如下:

rustCopy Code
enum EnumName { Variant1, Variant2, // ... }

枚举类的示例

以下是一个简单的枚举类示例:

rustCopy Code
enum 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 的枚举类,它包含三个变量:RedGreenBlue。然后我们使用 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 Code
enum 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 中的枚举类!