Добавление товара
Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 50 из 66.
Задание
ЛегкоВы получите три входных значения. Первое значение — это название товара, второе — цена товара, а третье — начальное количество на складе. Создайте HashMap для хранения данных об инвентаре, где ключом является название товара, а значением — кортеж, содержащий цену и количество (f64, i32). Добавьте товар в инвентарь и выведите подтверждающее сообщение, за которым следуют сведения о текущем инвентаре.
Требования:
- Импортируйте
HashMapизstd::collections - Прочитайте первое входное значение (название товара) и удалите лишние пробелы
- Прочитайте второе входное значение (цена) и удалите лишние пробелы
- Преобразуйте цену в тип
f64 - Прочитайте третье входное значение (количество) и удалите лишние пробелы
- Преобразуйте количество в тип
i32 - Создайте изменяемый
HashMap<String, (f64, i32)>для инвентаря - Вставьте товар в инвентарь, используя цену и количество в виде кортежа
- Выведите:
Added [item_name] to inventory - Выведите:
Price: $[price] - Выведите:
Quantity: [quantity]
Ввод:
- Первая строка: Название товара (например,
Laptop) - Вторая строка: Цена в виде числа (например,
999.99) - Третья строка: Количество в виде числа (например,
15)
Вывод:
- Первая строка:
Added [item_name] to inventory - Вторая строка:
Price: $[price] - Третья строка:
Quantity: [quantity]
Попробуйте сами
use std::collections::HashMap;
use std::io;
fn main() {
// Прочитать название товара
let mut item_name = String::new();
io::stdin().read_line(&mut item_name).expect("Failed to read line");
let item_name = item_name.trim().to_string();
// Прочитать цену
let mut price_input = String::new();
io::stdin().read_line(&mut price_input).expect("Failed to read line");
let price: f64 = price_input.trim().parse().expect("Failed to parse price");
// Прочитать количество
let mut quantity_input = String::new();
io::stdin().read_line(&mut quantity_input).expect("Failed to read line");
let quantity: i32 = quantity_input.trim().parse().expect("Failed to parse quantity");
// TODO: Напишите свой код ниже
// Создать HashMap для хранения инвентаря
// Добавить товар в инвентарь
// Вывести подтверждающие сообщения
}Все уроки раздела 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Итоги: поиск элемента