From c96bea19195957d4485a26724a063fa58b64c3bb Mon Sep 17 00:00:00 2001 From: lijinpeng Date: Sun, 2 Jan 2022 17:50:17 +0800 Subject: [PATCH] Fix typo in match-if-let.md --- course-book/contents/basic/match-pattern/match-if-let.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/course-book/contents/basic/match-pattern/match-if-let.md b/course-book/contents/basic/match-pattern/match-if-let.md index bcfb9fc6..f9ec31be 100644 --- a/course-book/contents/basic/match-pattern/match-if-let.md +++ b/course-book/contents/basic/match-pattern/match-if-let.md @@ -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);