Rust 中如何解析字符串包含负数?

Arf*_*med 0 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();
}
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*ard 6

当您在最后一行替换为时,u32i32的程序就能够处理负数。

u32表示32 位宽度的parse()符号整数,因此当遇到负数时会出现恐慌。i32是一个有符号整数,所以它可以工作。