Как синтаксический анализ String содержит отрицательное число в Rust? - PullRequest
0 голосов
/ 26 мая 2019

Я беру номер ввода от пользователя, а затем проверяю, является ли число положительным, отрицательным или нулевым. Проверка положительного числа и нуля выполнена, но возникла проблема с проверкой отрицательного числа.

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 Ответ

3 голосов
/ 26 мая 2019

Когда вы заменяете u32 на i32 в последней строке, ваша программа может обрабатывать отрицательные числа.

u32 означает без знака целое число с шириной 32 бита, поэтому parse() паникует, когда встречает отрицательное число.i32 является целым числом со знаком , поэтому оно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...