Menu
Coddy logo textTech

Чтение ввода пользователя

Часть раздела Основы путешествия по Rust на Coddy. Урок 30 из 75.

До сих пор мы создавали программы, в которых напрямую записывали значения в коде. Но реальным программам часто требуется взаимодействовать с пользователями и получать от них информацию.

В Rust получение данных от пользователя выполняется с использованием библиотеки std::io. Эта библиотека предоставляет методы для чтения различных типов ввода, таких как целые числа, числа с плавающей точкой и строки.

Чтобы использовать библиотеку std::io, сначала необходимо импортировать её:

use std::io;

Чтобы прочитать ввод от пользователя, нам нужны две строки кода:

let mut my_var = String::new();
// Создаёт пустую строку для хранения ввода

io::stdin().read_line(&mut my_var).unwrap();
 // Читает ввод

Это сохранит введённое значение в переменной my_var типа string.

Если вы хотите получить число, вам нужно выполнить дополнительный шаг, чтобы преобразовать текстовый ввод в число:

let age: i32 = input.trim().parse().unwrap();

Метод .trim() нужен, потому что при нажатии Enter к введённым данным добавляется символ новой строки. Например, если кто-то вводит "25" и нажимает Enter, фактические введённые данные имеют вид "25\n". Метод .trim() удаляет эти лишние пробельные символы (пробелы, символы новой строки и т. д.) из начала и конца введённых данных.

Пока не слишком беспокойся о unwrap() — мы изучим это позже. Просто знай, что это помогает нам обрабатывать потенциальные ошибки простым (хотя и не идеальным) способом.

challenge icon

Задание

Новичок

Напишите программу, которая получает input от user (имя), а затем выводит Hello, после чего — введённое user имя и восклицательный знак.

Например, если user вводит Bob, ожидаемый результат — Hello, Bob!.

Вам потребуется:

  1. Create объект String для чтения input.
  2. Предложить user ввести their имя: "Enter your name:"
  3. Read имя user, используя соответствующий метод std::io.
  4. Print Hello, после чего сохранённое имя и восклицательный знак ! в конце.

Попробуйте сами

use std::io;

fn main() {
    // Создать объект String
    let mut name = String::new();
    
    // Предложить пользователю ввести своё имя (использовать println)
    
    
    // Прочитать имя пользователя
    
    
    // Вывести приветственное сообщение
    
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Онлайн-компилятор Rust