From f6f57a1b18971f30c56b98bdad912638b785cecc Mon Sep 17 00:00:00 2001 From: tomoat Date: Mon, 28 Feb 2022 16:56:05 +0800 Subject: [PATCH] Update all-patterns.md --- contents/basic/match-pattern/all-patterns.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contents/basic/match-pattern/all-patterns.md b/contents/basic/match-pattern/all-patterns.md index 786b49fd..c8855d9b 100644 --- a/contents/basic/match-pattern/all-patterns.md +++ b/contents/basic/match-pattern/all-patterns.md @@ -36,7 +36,7 @@ fn main() { } ``` -让我们看看当 `match` 语句运行的时候发生了什么。第一个匹配分支的模式并不匹配 `x` 中定义的值,所以代码继续执行。 +让我们看看当 `match` 语句运行的时候发生了什么。第一个匹配分支的模式并不匹配 `x` 中定义的值,所以代码会跳出第一个分支,执行下一个匹配分支。 第二个匹配分支中的模式引入了一个新变量 `y`,它会匹配任何 `Some` 中的值。因为这里的 `y` 在 `match` 表达式的作用域中,而不是之前 `main` 作用域中,所以这是一个新变量,不是开头声明为值 10 的那个 `y`。这个新的 `y` 绑定会匹配任何 `Some` 中的值,在这里是 `x` 中的值。因此这个 `y` 绑定了 `x` 中 `Some` 内部的值。这个值是 5,所以这个分支的表达式将会执行并打印出 `Matched,y = 5`。 @@ -64,7 +64,7 @@ match x { ### 通过序列 `..=` 匹配值的范围 -在[数值类型](../base-type/numbers#序列(Range))中我们有讲到一个序列语法,该语言不仅可以用循环中,还能用于匹配模式。 +在[数值类型](../base-type/numbers#序列(Range))中我们有讲到一个序列语法,该语法不仅可以用循环中,还能用于匹配模式。 `..=` 语法允许你匹配一个闭区间序列内的值。在如下代码中,当模式匹配任何在此序列内的值时,该分支会执行: @@ -161,8 +161,8 @@ fn main() { ``` 首先是 `match` 第一个分支,指定匹配 `y` 为 `0` 的 `Point`; -然后第二个分支在第一个分支之后,匹配 `y` 不为`0`,`x`为 `0` 的 `Point`; -最后一个分支匹配 `x` 不为 `0`,`y` 也不为 `0` 的 `Point`。 +然后第二个分支在第一个分支之后,匹配 `x`为 `0` 的 `Point`; +最后一个分支匹配 `x` 和 `y` 为 `i32` 类型的任意值的 `Point`。 在这个例子中,值 `p` 因为其 `x` 包含 0 而匹配第二个分支,因此会打印出 `On the y axis at 7`。