【发布时间】:2021-11-20 22:54:23
【问题描述】:
我想做类似下面的伪 Rust 代码:
let mut var;
for i in iter {
if condition {
var = some_obj;
}
else {
var.some_method();
}
}
明显的问题是var.some_method(); 可能在var 在真正的分支中被初始化之前运行,所以这段代码不会编译。
我有一个用例,但是我确信在真正的分支至少有一次之前,错误的分支不会执行。我希望能够根据真分支中计算的结果定义var,然后在未来循环迭代的假分支中使用它。
我唯一的想法是在循环外用一个虚拟变量初始化var,但这似乎很老套。有没有一种干净的方法可以在这里实现我想要的?
【问题讨论】:
标签: rust borrow-checker