Merge pull request #1523 from expoli/patch-1

这个部分提到了新变量,新的变量是n,感觉修改成现在的表述会更加顺畅,逻辑也更清晰
main
Sunface 6 days ago committed by GitHub
commit c69e1df8ef
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -523,7 +523,7 @@ fn main() {
} }
``` ```
现在这会打印出 `Default case, x = Some(5)`。现在第二个匹配分支中的模式不会引入一个覆盖外部 `y` 的新变量 `y`,这意味着可以在匹配守卫中使用外部的 `y`。相比指定会覆盖外部 `y` 的模式 `Some(y)`,这里指定为 `Some(n)`。此新建的变量 `n` 并没有覆盖任何值,因为 `match` 外部没有变量 `n`。 上面代码会打印 `Default case, x = Some(5)`。其中,第二个匹配分支由于没有新建局部变量 `y`,因此在匹配守卫中使用的是外部的 `y`。
匹配守卫 `if n == y` 并不是一个模式所以没有引入新变量。这个 `y` **正是** 外部的 `y` 而不是新的覆盖变量 `y`,这样就可以通过比较 `n``y` 来表达寻找一个与外部 `y` 相同的值的概念了。 匹配守卫 `if n == y` 并不是一个模式所以没有引入新变量。这个 `y` **正是** 外部的 `y` 而不是新的覆盖变量 `y`,这样就可以通过比较 `n``y` 来表达寻找一个与外部 `y` 相同的值的概念了。

Loading…
Cancel
Save