Пользовательский ввод стал проще: методы Rust для встроенных вопросов и ответов

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

Метод 1: использование функции read_line
Функция read_line — это простой и понятный способ получить вводимые пользователем данные в той же строке, что и вопрос. Вот пример:

use std::io;
fn main() {
    println!("What's your name?");
    let mut name = String::new();
    io::stdin().read_line(&mut name).expect("Failed to read line");
    println!("Hello, {}!", name.trim());
}

Метод 2: непосредственное использование std::io::stdin
Другой подход — напрямую использовать функцию std::io::stdin. Этот метод позволяет настроить приглашение и получать вводимые данные в одной строке. Вот пример:

use std::io::{self, Write};
fn main() {
    print!("Enter your age: ");
    io::stdout().flush().unwrap();
    let mut input = String::new();
    io::stdin().read_line(&mut input).expect("Failed to read line");
    let age: u32 = input.trim().parse().expect("Invalid age");
    println!("You entered: {}", age);
}

Метод 3: использование контейнера text_io
Ящик text_ioобеспечивает удобный способ анализа пользовательского ввода в одной строке. Вот пример:

use text_io::read;
fn main() {
    let name: String = read!("What's your name? ");
    println!("Hello, {}!", name);
}

В этой статье мы исследовали три различных метода получения пользовательского ввода в одной строке с вопросом в Rust. Функция read_line, напрямую использующая std::io::stdinи использование крейта text_io, — все это обеспечивает эффективные способы сбора пользовательской информации. Используя эти методы, вы можете создавать интерактивные и удобные для пользователя приложения Rust.