2017-01-19 4 views
0

ユーザーは、既に存在するインベントリから引くためにインベントリのキーと値を入力できるようにする応答を作成しようとしています。したがって、インベントリの開始時に10個のリンゴがあり、7個のリンゴを販売していると答えた場合、残りの3個のリンゴが残ります。Rubyハッシュ:数量を減算する

私は初心者ですので、説明が参考になるかもしれません。ありがとうございました!まず

@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 

答えて

4
@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 

私はproductHash#key?と在庫品であるかどうかを確認してください。それ以外の場合は、エラーを出力します。 それから量を減算します。最後に、総量が負でないことを確認します。

Hash.deleteこれは、ハッシュからキーと値のペアを削除して値を返します。例:

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

ありがとうSimon Fromme!それは完璧に動作します! – Ian