这个部分提到了新变量,新的变量是n,感觉修改成现在的表述会更加顺畅,逻辑也更清晰

pull/1523/head
expoli 2 weeks ago committed by GitHub
parent c71a9c3ef2
commit cf249a1242
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` 的新变量 `n`,这意味着可以在匹配守卫中使用外部的 `y`。相比指定会覆盖外部 `y` 的模式 `Some(y)`,这里指定为 `Some(n)`。此新建的变量 `n` 并没有覆盖任何值,因为 `match` 外部没有变量 `n`
匹配守卫 `if n == y` 并不是一个模式所以没有引入新变量。这个 `y` **正是** 外部的 `y` 而不是新的覆盖变量 `y`,这样就可以通过比较 `n``y` 来表达寻找一个与外部 `y` 相同的值的概念了。

Loading…
Cancel
Save