Итоги: создание структуры Book
Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 26 из 66.
Задание
ЛегкоВы получите четыре входных значения: название книги, имя автора, год издания (целое число) и количество страниц (целое число). Определите структуру Book с четырьмя полями: title типа String, author типа String, year типа i32 и pages типа i32. Создайте экземпляр этой структуры, используя входные значения, и выведите информацию о книге.
Требования:
- Определите структуру
Bookс полями:title: String,author: String,year: i32иpages: i32 - Считайте первое входное значение как название книги
- Считайте второе входное значение как имя автора
- Считайте третье входное значение и преобразуйте его в
i32для года издания - Считайте четвертое входное значение и преобразуйте его в
i32для количества страниц - Создайте экземпляр структуры
Bookс этими значениями - Выведите информацию о книге в точном формате, показанном ниже
Ввод:
- Первая строка: Название книги (например,
The Rust Programming Language) - Вторая строка: Имя автора (например,
Steve Klabnik) - Третья строка: Год издания как целое число (например,
2018) - Четвертая строка: Количество страниц как целое число (например,
552)
Вывод:
- Первая строка:
Book: [title] - Вторая строка:
Author: [author] - Третья строка:
Year: [year] - Четвертая строка:
Pages: [pages]
Попробуйте сами
use std::io;
// TODO: Определите здесь структуру Book с полями: title, author, year и pages
fn main() {
// Чтение названия книги
let mut title = String::new();
io::stdin().read_line(&mut title).expect("Failed to read line");
let title = title.trim().to_string();
// Чтение имени автора
let mut author = String::new();
io::stdin().read_line(&mut author).expect("Failed to read line");
let author = author.trim().to_string();
// Чтение года издания
let mut year_input = String::new();
io::stdin().read_line(&mut year_input).expect("Failed to read line");
let year: i32 = year_input.trim().parse().expect("Failed to parse year");
// Чтение количества страниц
let mut pages_input = String::new();
io::stdin().read_line(&mut pages_input).expect("Failed to read line");
let pages: i32 = pages_input.trim().parse().expect("Failed to parse pages");
// TODO: Создайте экземпляр структуры Book, используя введенные значения
// TODO: Выведите информацию о книге в требуемом формате
}Все уроки раздела Logic & Flow
1Продвинутое управление потоком выполнения
Выражение 'match'Сопоставление нескольких значенийСопоставление диапазоновВыражение 'if let'Циклы как выраженияИтоги — Простой парсер команд4Группировка данных с помощью структур
Что такое структура?Обзор структурДоступ к полям структурыИзменяемые структурыСтруктуры как параметры функцийКортежные структурыИтоги: создание структуры Book7Обработка ошибок с помощью 'Result'
Что такое 'Result'?Использование 'match' с 'Result'is_ok() и is_err()Сокращения: unwrap и expectОператор вопросительного знака '?'Парсинг строк в числаИтоги: функция безопасного деления10Замыкания и анонимные функции
Что такое замыкание?Определение простого замыканияЗамыкания с параметрамиЗахват окруженияИтоги: Простое замыкание-сумматор2Введение в векторы
Что такое вектор?Создание вектораДобавление элементов с помощью pushДоступ к элементам вектораИтерация по векторуИзменяемая итерацияУдаление элементовИтоги — Простой счетчик очков5Пары «ключ-значение» в Hash Map
Что такое Hash Map?Создание Hash MapВставка пар «ключ-значение»Доступ к значениямИтерация по Hash MapОбновление значенияУдаление парыИтоги — Счетчик слов8Проект: Простой инвентарь товаров
Настройка проектаДобавление товараПроверка наличияПродажа товараСобираем всё воедино3Список дел в командной строке
Настройка проектаДобавление задачиПросмотр всех задачУдаление задачиИтоговый код6Обработка отсутствия значения с 'Option'
Что такое 'Option'?Использование 'match' с 'Option'is_some() и is_none()Распаковка 'Option'Метод expectЗначение по умолчанию: unwrap_orИтоги: поиск элемента