Ruby 哈希:减去数量

Ruby Hash: Subtracting quantities

我正在尝试创建一个响应,允许用户输入库存的键和值以从已存在的库存中减去。因此,如果库存开始时有 10 个苹果,而我回答说我要卖 7 个苹果,则散列中的剩余部分应表示为还剩 3 个苹果。

我是初学者,有点迷茫,所以任何解释都会有所帮助。谢谢!

@inventory = {"apples" => 10, "bananas" => 10, "crackers" => 10, "breads" => 10}

def sell_inventory   
   puts "What food are we selling today?"       
   product = gets.chomp.downcase         
   puts "How many #{product} are we selling today?"        
   quantity = gets.to_i        
   @inventory.delete(product, quantity)         
end
@inventory = { "apples" => 10, "bananas" => 10, "crackers" => 10, "breads" => 10 }

def sell_inventory 
   puts "What food are we selling today?" 
   product = gets.chomp.downcase 

   puts "How many #{product} are we selling today?" 
   quantity = gets.to_i 

   if @inventory.key?(product)
     @inventory[product] -= quantity
     @inventory[product] = 0 if @inventory[product] < 0
   else
     puts "No inventory product: #{product}"
   end
end

首先我检查product是否是Hash#key?的库存产品。否则我会打印错误。 然后我减去数量。最后我检查了总数量不能为负数

您尝试过的

Hash.delete 将从散列中删除 key-value-pair 并从值中删除 returns。一个例子:

@inventory.delete("apples")
# => 8
@inventory
# => {"bananas"=>10, "crackers"=>10, "breads"=>10}