let 绑定可以分配给可变变量而不是阴影吗?

问题描述 投票:0回答:1

我有一些代码,如下所示:

let mut x = ...;
while let Some(x_) = foo(x) {
    x = x_;
    bar(x);
}
baz(x);

我想写成:

let mut x = ...;
while let Some(x) = foo(x) {
    bar(x);
}
baz(x);

但据我所知,这会隐藏外部可变的

x
而不是分配给它。请注意,我需要在循环结束后访问
x
的最终值。

rust variable-assignment
1个回答
1
投票

不,

let
始终绑定新变量,即使在
if
while
内部也是如此。重新分配现有变量值的唯一方法是使用中缀
=
运算符。

© www.soinside.com 2019 - 2024. All rights reserved.