如何在Rust中解析String包含负数?

时间:2019-05-26 07:39:10

标签: rust

我要从用户那里输入数字,然后检查数字是正数,负数还是零。执行了正数和零校验,但是在负数校验中有问题。

use std::io::Write;

fn main(){
    print!("Enter Number: ");
    let mut number = String::new();
    std::io::stdout().flush();
    std::io::stdin().read_line(&mut number);
    let num: u32 = number.trim().parse().unwrap();
}

当输入为负数时,程序会陷入恐慌,无法解析负数。

1 个答案:

答案 0 :(得分:3)

在最后一行中用u32替换i32时,程序将能够处理负数。

u32表示 unsigned 整数,宽度为32位,因此parse()在遇到负数时会感到慌张。 i32是一个带符号整数,因此可以使用。