检查库存
本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 51 课,共 66 课。
挑战
简单你会收到 4 个输入。第一个输入是要查询的商品名称。第二个输入是库存中以逗号分隔的商品名称列表。第三个输入是与每件商品对应、以逗号分隔的价格列表。第四个输入是与每件商品对应、以逗号分隔的数量列表。创建一个 HashMap 来存储库存数据,其中键是商品名称,值是包含价格和数量的元组 (f64, i32)。然后使用 .get() 检查库存中是否存在指定商品,并打印相应的库存信息。
要求:
- 从
std::collections导入HashMap - 读取第一个输入(要查询的商品名称)并去除空白字符
- 读取第二个输入(以逗号分隔的商品名称)并去除空白字符
- 读取第三个输入(以逗号分隔的价格)并去除空白字符
- 读取第四个输入(以逗号分隔的数量)并去除空白字符
- 为库存创建一个可变的
HashMap<String, (f64, i32)> - 按逗号拆分商品名称
- 按逗号拆分价格,并将每个价格解析为
f64 - 按逗号拆分数量,并将每个数量解析为
i32 - 将每件商品及其对应的价格和数量作为元组插入库存中
- 使用
.get()检查库存中是否存在指定商品 - 使用
match表达式处理.get()返回的Option - 在
Some分支中,从元组中提取价格和数量并打印:[item_name] is in stockPrice: $[price]Quantity: [quantity]
- 在
None分支中,打印:[item_name] is not in stock
输入:
- 第一行:要查询的商品名称(例如,
Laptop) - 第二行:以逗号分隔的商品名称(例如,
Laptop,Mouse,Keyboard) - 第三行:以逗号分隔的价格(例如,
999.99,25.50,75.00) - 第四行:以逗号分隔的数量(例如,
15,50,30)
输出:
- 如果库存中存在该商品:
- 第一行:
[item_name] is in stock - 第二行:
Price: $[price] - 第三行:
Quantity: [quantity]
- 第一行:
- 如果库存中不存在该商品:
[item_name] is not in stock
亲手试试
use std::collections::HashMap;
use std::io;
fn main() {
// 读取要检查的商品名称
let mut item_to_check = String::new();
io::stdin().read_line(&mut item_to_check).expect("Failed to read line");
let item_to_check = item_to_check.trim();
// 读取用逗号分隔的商品名称
let mut items_input = String::new();
io::stdin().read_line(&mut items_input).expect("Failed to read line");
let items_input = items_input.trim();
// 读取用逗号分隔的价格
let mut prices_input = String::new();
io::stdin().read_line(&mut prices_input).expect("Failed to read line");
let prices_input = prices_input.trim();
// 读取用逗号分隔的数量
let mut quantities_input = String::new();
io::stdin().read_line(&mut quantities_input).expect("Failed to read line");
let quantities_input = quantities_input.trim();
// TODO: 在下方编写你的代码
// 创建一个 HashMap 来存储库存数据
// 拆分输入并填充 HashMap
// 使用 .get() 检查商品是否存在
// 使用 match 处理 Option,并打印相应的输出
}逻辑与流程中的所有课
自己练习: Rust 在线编译器