Menu
CoddyTech

添加物品

本课属于 Coddy Rust 学习旅程的“逻辑与流程”单元。第 50 课,共 66 课。

challenge icon

挑战

简单

你将收到 3 个输入。第一个输入是商品名称,第二个输入是商品价格,第三个输入是初始库存数量。创建一个 HashMap 来存储库存数据,其中键是商品名称,值是一个包含价格和数量的元组 (f64, i32)。将商品添加到库存中,并打印一条确认消息,随后打印当前库存详情。

要求:

  • 从 std::collections 导入 HashMap
  • 读取第一个输入(商品名称)并去除空白字符
  • 读取第二个输入(价格)并去除空白字符
  • 将价格解析为 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 来存储库存
    // 将商品添加到库存中
    // 打印确认消息
    
}

逻辑与流程中的所有课

自己练习: Rust 在线编译器