我有以下匹配条件,用于测试输入的猜测是否为有效数字(来自Rust猜数游戏练习):
let mut guess = String::new();
io::stdin().read_line(&mut guess).expect("Failed to read");
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => continue,
};
我该如何扩展匹配以检查数字是否为负数或0(如果是负数,我想抛出一个错误),如果数字为正数,则继续正常操作?
我尝试在Ok的情况下添加if num,但这会引发错误(可能是因为num绑定到guess的值),而且似乎也不符合惯用法。
u32
,它无论如何都不可能是负数,因此你会得到一个解析错误。这难道不是你想要的吗? - mcarton