【发布时间】:2021-03-17 14:09:19
【问题描述】:
我遇到了一个奇怪的案例,Rust 告诉我我不需要在变量上使用mut,即使我显然在改变它!经过一番摆弄后,我设法编译了以下代码,它看起来很糟糕。
fn main() {
let x: u32;
loop {
match 1 {
1 => {}
_ => {
x = 5;
break;
}
}
}
dbg!(x);
}
运行它 (playground) 会导致某种崩溃。这里发生了什么?这是编译器错误吗?我每晚试了一下,还是超时。
【问题讨论】:
-
这是一个无限循环,与
x的初始化无关。 -
无限循环掩盖了你真正的问题,我认为这是关于deferred initialization
标签: rust