Можно так:
let some_string = String::from("12"); // например, такая строка
let number = some_string.parse::<i32>();
match number {
Ok(result) => println!("Получилось, число: {:?}", result),
Err(_) => eprintln!("Строка - не число"),
}
Строкой
let number = some_string.parse::<i32>();
мы парсим строку и переделываем её в i32
(можете поставить здесь любой челочисленный тип, который вам нужен), тогда number
получит тип Result<f32, std::num::ParseFloatError>
.
В строках
match number {
Ok(result) => println!("Получилось, число: {:?}", result),
Err(_) => eprintln!("Строка - не число"),
}
проверяем, что преобразование прошло успешно, и, если получилось, выводим Получилось, число: <ПОЛУЧИВШЕЕСЯ ЧИСЛО>
, если же нет, выводим Строка - не число
в стандартный поток ошибок.