Rust 的枚举和匹配¶
枚举类型¶
Rust 的枚举通过关键字 enum
定义。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
枚举的每种变体 (variant) 可以:
- 没有数据(单位元变体)
- 有命名的数据域(结构体变体)
- 有不命名的有序数据域(元组变体)
1 2 3 4 5 |
|
与 C++ 的对照
C/C++ 的枚举类型底层是整数,不能拥有数据成员。这是 Rust 和 C/C++ 的一个很大的区别。 枚举类型是 Rust 提供给我们的有力武器。善用枚举类,可以便捷地传递很多数据。
匹配¶
match
表达式¶
match
表达式可以对枚举量进行匹配。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
与 C++ 的对照
match
表达式与 C/C++ 的 switch-case
有类似之处,但远比后者强大。读者可能需要花一点时间来适应 Rust 的 enum
和 match
表达式,然后就可以享受它美妙的模式匹配语法了。
if-let
表达式¶
if-let
提供了一种简化的模式匹配机制。
1 2 3 4 5 6 7 |
|
评论
作者: