From 59cd37a9ed956912c0b6a4981b6a1968d29e7ac8 Mon Sep 17 00:00:00 2001 From: 1478zhcy <61115159+1478zhcy@users.noreply.github.com> Date: Thu, 10 Mar 2022 01:54:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E5=85=B3=E4=BA=8E?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E5=8C=B9=E9=85=8D=E7=9A=84=E4=BE=8B=E5=AD=90?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E5=B0=8F=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/basic/match-pattern/all-patterns.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/basic/match-pattern/all-patterns.md b/src/basic/match-pattern/all-patterns.md index 2d332ecc..4ff38d9d 100644 --- a/src/basic/match-pattern/all-patterns.md +++ b/src/basic/match-pattern/all-patterns.md @@ -29,7 +29,7 @@ fn main() { match x { Some(50) => println!("Got 50"), Some(y) => println!("Matched, y = {:?}", y), - _ => println!("Default case, x = {:?}", x), + _ => println!("Default case, y = {:?}", y), } println!("at the end: x = {:?}, y = {:?}", x, y); @@ -40,7 +40,7 @@ fn main() { 第二个匹配分支中的模式引入了一个新变量 `y`,它会匹配任何 `Some` 中的值。因为这里的 `y` 在 `match` 表达式的作用域中,而不是之前 `main` 作用域中,所以这是一个新变量,不是开头声明为值 10 的那个 `y`。这个新的 `y` 绑定会匹配任何 `Some` 中的值,在这里是 `x` 中的值。因此这个 `y` 绑定了 `x` 中 `Some` 内部的值。这个值是 5,所以这个分支的表达式将会执行并打印出 `Matched,y = 5`。 -如果 `x` 的值是 `None` 而不是 `Some(5)`,头两个分支的模式不会匹配,所以会匹配模式 `_`。这个分支的模式中没有引入变量 `x`,所以此时表达式中的 `x` 会是外部没有被覆盖的 `x`,也就是 `Some(5)`。 +如果 `x` 的值是 `None` 而不是 `Some(5)`,头两个分支的模式不会匹配,所以会匹配模式 `_`。这个分支的模式中没有引入变量 `y`,所以此时表达式中的 `y` 会是外部没有被覆盖的 `y`,也就是 `10`。 一旦 `match` 表达式执行完毕,其作用域也就结束了,同理内部 `y` 的作用域也结束了。最后的 `println!` 会打印 `at the end: x = Some(5), y = 10`。 @@ -613,4 +613,4 @@ num @ (1 | 2) ## 课后练习 -> [Rust By Practice](https://zh.practice.rs/pattern-match/patterns.html),支持代码在线编辑和运行,并提供详细的[习题解答](https://github.com/sunface/rust-by-practice)。 \ No newline at end of file +> [Rust By Practice](https://zh.practice.rs/pattern-match/patterns.html),支持代码在线编辑和运行,并提供详细的[习题解答](https://github.com/sunface/rust-by-practice)。