在本章中,我们将研究enumeration
,也称为enum
。
枚举允许通过枚举可能的变体来定义类型。
首先,将定义和使用枚举来展示枚举如何与数据一起编码意义。接下来,将探索一个特别有用的枚举,称为Option
,它表示一个值可以是有值也可以是无值。然后,将了解match
表达式中的模式匹配( pattern matching
)如何使为枚举的不同值运行不同的代码变得容易。最后,将介绍if let
构造如何成为在代码中处理枚举的另一个方便而简洁的习惯用法。
枚举提供了一种表示值是一组可能值中的一个的方法。
任何IP地址都可以是版本4或版本6的地址,但不能同时是两者。IP地址的这个属性使得枚举数据结构非常合适,因为枚举值只能是它的所有值中的一个。版本4和版本6的地址基本上仍然是IP地址,因此当代码处理适用于任何类型的IP地址的情况时,应该将它们视为同一类型。
可以通过定义一个IpAddrKind
枚举并列出IP地址可能的类型V4
和V6
来在代码中表达这个概念。
enum IpAddrKind {V4,V6,
}
IpAddrKind
现在是一个自定义数据类型,可以在代码的其他地方使用它。
可以像这样分别创建IpAddrKind的两个变体(variants )的实例:
let four = IpAddrKind::V4;let six = IpAddrKind::V6;
注意,枚举的变体位于其标识符命名名称空间之下,使用双冒号将两者分隔开。这很有用,因为现在IpAddrKind::V4
和IpAddrKind::V6
的值都具有相同的类型:IpAddrKind
上一篇:2023上半年软考备考全流程梳理
下一篇:2023二建备考第二天Day02