Menu
Coddy logo textTech

アイテムの追加

CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 50/66。

challenge icon

チャレンジ

簡単

3つの入力を受け取ります。最初の入力はアイテム名、2番目の入力はアイテムの価格、3番目の入力は初期在庫数です。キーをアイテム名、値を価格と数量を含むタプル (f64, i32) とする、在庫データを格納するための HashMap を作成してください。アイテムを在庫に追加し、確認メッセージに続いて現在の在庫の詳細を出力してください。

要件:

  • std::collections から HashMap をインポートする
  • 最初の入力(アイテム名)を読み取り、空白をトリミングする
  • 2番目の入力(価格)を読み取り、空白をトリミングする
  • 価格を f64 にパースする
  • 3番目の入力(数量)を読み取り、空白をトリミングする
  • 数量を i32 にパースする
  • 在庫用にミュータブルな HashMap<String, (f64, i32)> を作成する
  • 価格と数量をタプルとして在庫にアイテムを挿入する
  • 出力: Added [item_name] to inventory
  • 出力: Price: $[price]
  • 出力: Quantity: [quantity]

入力:

  • 1行目: アイテム名 (例: Laptop)
  • 2行目: 数値としての価格 (例: 999.99)
  • 3行目: 数値としての数量 (例: 15)

出力:

  • 1行目: Added [item_name] to inventory
  • 2行目: Price: $[price]
  • 3行目: 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のすべてのレッスン