我从用户那里获取输入数字,然后检查该数字是正数、负数还是零。已执行正数和零检查,但负数检查存在问题。
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)
当输入为负数时,程序会出现恐慌,无法解析负数。
当您在最后一行替换为时,u32您i32的程序就能够处理负数。
u32表示32 位宽度的无parse()符号整数,因此当遇到负数时会出现恐慌。i32是一个有符号整数,所以它可以工作。