rust let绑定可以赋值给可变变量(而不是隐藏)吗?

zc0qhyus  于 2023-06-06  发布在  其他
关注(0)|答案(1)|浏览(136)

我有一些代码,看起来像这样

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的最终值。

ffscu2ro

ffscu2ro1#

不,let总是绑定一个新变量,即使在ifwhile内部。重新分配现有变量值的唯一方法是使用中缀=运算符。

相关问题