Основы 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.

  • Начальный
  • Чтение: 2 мин
  • Примеров для запуска: 1
Что вы узнаете
  • io::stdin().read_line
  • trim and parse
  • Handling bad input with match
From the keyboard to a number
  1. 1read_line"36\n"
  2. 2trim()"36"
  3. 3parse::<u32>()Ok(36)
  4. 4age + 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.

Главное

  1. read_line keeps the newline: call trim.
  2. parse returns Ok(number) or Err.
  3. 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.

Практика

Откройте пример в онлайн-компиляторе, измените значение или добавьте строку и попробуйте предсказать вывод до запуска. Затем намеренно сломайте код и прочитайте сообщение компилятора.

Закончили этот урок?

Отметьте его как изученный, чтобы следить за прогрессом.

Далее: Conditions with if and else →

Попрактикуйтесь на задаче

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

Все задачи