Чтение ввода пользователя
Часть раздела Основы путешествия по 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() — мы изучим это позже. Просто знай, что это помогает нам обрабатывать потенциальные ошибки простым (хотя и не идеальным) способом.
Задание
НовичокНапишите программу, которая получает input от user (имя), а затем выводит Hello, после чего — введённое user имя и восклицательный знак.
Например, если user вводит Bob, ожидаемый результат — Hello, Bob!.
Вам потребуется:
- Create объект
Stringдля чтения input. - Предложить user ввести their имя: "
Enter your name:" - Read имя user, используя соответствующий метод
std::io. - Print
Hello,после чего сохранённое имя и восклицательный знак!в конце.
Попробуйте сами
use std::io;
fn main() {
// Создать объект String
let mut name = String::new();
// Предложить пользователю ввести своё имя (использовать println)
// Прочитать имя пользователя
// Вывести приветственное сообщение
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический вводПотренируйтесь самостоятельно: Онлайн-компилятор Rust