2.4 解构枚举
04-解构枚举 — Comprehensive Rust
1分钟内可阅读完
译文 · 基于 Comprehensive Rust
原文链接: https://google.github.io/comprehensive-rust/pattern-matching/destructuring-enums.html
2.4 解构枚举
与元组一样,枚举也可以通过匹配来解构:
模式还可以把变量绑定到值的各个部分。这就是检查类型结构的方式。先从一个简单的 enum 开始:
| |
这里我们用匹配分支_解构_了 Result 值。第一个分支中,half 绑定到 Ok 变体内的值;第二个分支中,msg 绑定到错误信息。
if/else表达式返回一个枚举,随后用match拆开。- 可以试着给枚举定义增加第三个变体,并运行代码查看报错。指出哪些地方变得不完备(inexhaustive),以及编译器如何给出提示。
- 枚举变体中的值只有在模式匹配之后才能访问。
- 演示匹配不完备时会发生什么。指出 Rust 编译器在确认所有情况都已处理时的优势。
- 给枚举定义增加一个结构体风格的变体,并在
match中演示其语法。指出这在语法上与匹配结构体很相似。