pull/751/head
sunface 3 years ago
commit 7d2f0ee380

@ -139,7 +139,7 @@ fn main() {
这段代码创建了变量 `x``y`,与结构体 `p` 中的 `x``y` 字段相匹配。其结果是变量 `x``y` 包含结构体 `p` 中的值。
也可以使用字面值作为结构体模式的一部分进行进行解构,而不是为所有的字段创建变量。这允许我们测试一些字段为特定值的同时创建其他字段的变量。
也可以使用字面值作为结构体模式的一部分进行解构,而不是为所有的字段创建变量。这允许我们测试一些字段为特定值的同时创建其他字段的变量。
下文展示了固定某个字段的匹配方式:

@ -241,7 +241,7 @@ error[E0004]: non-exhaustive patterns: `West` not covered // 非穷尽匹配,`
#### `_` 通配符
当我们不想在匹配的时候列出所有值的时候,可以使用 Rust 提供的一个特殊**模式**,例如,`u8` 可以拥有 0 到 255 的有效的值,但是我们只关心 `1、3、5 和 7` 这几个值,不想列出其它的 `0、2、4、6、8、9 一直到 255` 的值。那么, 我们不必一个一个列出所有值, 因为可以使用使用特殊的模式 `_` 替代:
当我们不想在匹配的时候列出所有值的时候,可以使用 Rust 提供的一个特殊**模式**,例如,`u8` 可以拥有 0 到 255 的有效的值,但是我们只关心 `1、3、5 和 7` 这几个值,不想列出其它的 `0、2、4、6、8、9 一直到 255` 的值。那么, 我们不必一个一个列出所有值, 因为可以使用特殊的模式 `_` 替代:
```rust
let some_u8_value = 0u8;
@ -323,7 +323,7 @@ assert!(matches!(bar, Some(x) if x > 2));
## 变量覆盖
无论是 `match` 还是 `if let`,他们都可以在模式匹配时覆盖掉老的值,绑定新的值:
无论是 `match` 还是 `if let`,他们都可以在模式匹配时覆盖掉老的值,绑定新的值:
```rust
fn main() {

Loading…
Cancel
Save