Fix typo in match-if-let.md

pull/117/head
lijinpeng 3 years ago
parent e4d4b7b6dc
commit c96bea1919

@ -44,6 +44,7 @@ match target {
},
_ => 表达式3
}
```
该形式清晰的说明了何为模式,何为模式匹配:将模式与`target`进行匹配,即为模式匹配,而模式匹配不仅仅局限于`match`,后面我们会详细阐述。
@ -117,7 +118,7 @@ enum Coin {
Quarter(UsState), // 25美分硬币
}
```
其中Coin::Quarter成员还存放了一个值美国的某个州因为在1999年到2008年间美国在25美分(Quater)硬币的背后为50个州印刷了不同的设计, 其它硬币都没有相关的设计。
其中`Coin::Quarter`成员还存放了一个值美国的某个州因为在1999年到2008年间美国在25美分(Quarter)硬币的背后为50个州印刷了不同的设计, 其它硬币都没有相关的设计。
接下来我们希望在模式匹配中获取到25美分硬币上刻印的州的名称
```rust
@ -283,7 +284,7 @@ fn main() {
现在如果想对`v`进行过滤,只保留类型是`MyEnum::Foo`的元素,你可能想这么写:
```rust
v.iter().filter(|x| x == MyEnum:::Foo);
v.iter().filter(|x| x == MyEnum::Foo);
```
但是,实际上这行代码会保存,因为你无法将`x`跟一个类型进行比较。好在,你可以使用`match`来完成,但是会导致代码更为啰嗦,是否有更简洁的方式?答案是使用`matches!`:
@ -301,7 +302,7 @@ assert!(matches!(bar, Some(x) if x > 2));
```
## 变量覆盖
无论是是`match`还是`if let`,他们都可以在模式匹配时覆盖掉老的值,绑定新的:
无论是是`match`还是`if let`,他们都可以在模式匹配时覆盖掉老的值,绑定新的:
```rust
fn main() {
let age = Some(30);

Loading…
Cancel
Save