Update all-patterns.md

pull/494/head
tomoat 3 years ago committed by GitHub
parent 2fde211a5b
commit f6f57a1b18
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -36,7 +36,7 @@ fn main() {
}
```
让我们看看当 `match` 语句运行的时候发生了什么。第一个匹配分支的模式并不匹配 `x` 中定义的值,所以代码继续执行
让我们看看当 `match` 语句运行的时候发生了什么。第一个匹配分支的模式并不匹配 `x` 中定义的值,所以代码会跳出第一个分支,执行下一个匹配分支
第二个匹配分支中的模式引入了一个新变量 `y`,它会匹配任何 `Some` 中的值。因为这里的 `y``match` 表达式的作用域中,而不是之前 `main` 作用域中,所以这是一个新变量,不是开头声明为值 10 的那个 `y`。这个新的 `y` 绑定会匹配任何 `Some` 中的值,在这里是 `x` 中的值。因此这个 `y` 绑定了 `x``Some` 内部的值。这个值是 5所以这个分支的表达式将会执行并打印出 `Matchedy = 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`

Loading…
Cancel
Save