我正在尝试改进最终的猜数字示例代码。特别是,如果用户没有输入数字,我计划输出“请输入数字!”而不是再次输出“请输入你的猜测。” 我用内部循环来实现这个功能。下面的代码可以工作:
我希望能通过正确地遮盖匹配项来避免使用
let guess: u32;
loop {
let mut guess_str = String::new();
io::stdin().read_line(&mut guess_str)
.ok()
.expect("Failed to read line");
guess = match guess_str.trim().parse() {
Ok(num) => num,
Err(_) => {
println!("Please input a number!");
continue;
}
};
break;
}
我希望能通过正确地遮盖匹配项来避免使用
guess_str
。如果我将guess_str
更改为guess
,Rust会抱怨use of possibly uninitialized variable: `guess`
。如果按照上面的代码,变量不可能未初始化,那么它怎么可能未初始化呢?有没有什么方法只使用guess
来实现这一点?