Основы Rust
Reading User Input in Rust
Read a line with read_line, trim it and parse it into a number without crashing on bad input.
Что вы узнаете
- io::stdin().read_line
- trim and parse
- Handling bad input with match
From the keyboard to a number
- 1
read_line"36\n" - 2
trim()"36" - 3
parse::<u32>()Ok(36) - 4
age + 137
Text in, number out
read_line waits for the user to type a line and press Enter, then adds the text to a String. The text always arrives as a string, so numbers must be parsed before you calculate with them.
trim removes the newline that read_line keeps at the end. parse::<u32>() returns Ok with the number or Err when the text is not a number, and match handles both cases. The sample output uses the answers Ada and 36: in the online compiler, type your answers when the prompts appear.
Главное
read_linekeeps the newline: call trim.- parse returns
Ok(number)or Err. - match handles both cases.
Пример на Rust, который можно запустить
Rust
main.rs
use std::io;
fn main() {
println!("What is your name?");
let mut name = String::new();
io::stdin().read_line(&mut name).expect("failed to read");
let name = name.trim();
println!("How old are you?");
let mut age = String::new();
io::stdin().read_line(&mut age).expect("failed to read");
match age.trim().parse::<u32>() {
Ok(age) => println!("Hello, {name}! Next year you will be {}.", age + 1),
Err(_) => println!("Hello, {name}! That is not a number."),
}
}
What is your name?
How old are you?
Hello, Ada! Next year you will be 37.Практика
Откройте пример в онлайн-компиляторе, измените значение или добавьте строку и попробуйте предсказать вывод до запуска. Затем намеренно сломайте код и прочитайте сообщение компилятора.
Закончили этот урок?
Отметьте его как изученный, чтобы следить за прогрессом.
Ваш прогресс сохранён в этом браузере Войдите, чтобы он был доступен на всех устройствах.
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
- Сумма корректных чисел Сложите элементы, которые являются целыми числами, и пропустите всё остальное, как try/except обрабатывает неверный ввод. Легко
- Модуль числа без abs Вычислите модуль числа с помощью условия. Легко