我创建了哈希的杂货列表,该清单存储了该项目及其相关的成本,该项目由用户输入。
我想添加存储在此哈希中的所有值。我最初的计划是将它们转换为一个数组,然后从那里转。
hash = {}
entry = " "
while entry != "q"
print "Enter your item: "
item = gets.chomp
print "Enter the associated cost: "
cost = gets.chomp.to_f
print "Press any key to continue or 'q' to quit: "
entry = gets.chomp
hash[item] = cost
end
puts "Receipt: "
puts "----------"
hash.each do |k,v|
puts "#{k} costs $#{v}"
end
puts "----------"
puts "subtotal: "
hash.values
如何引用hash.values
制造的新创建的数组?
我尝试了array.inject(0){|sum,x| sum + x }
,但是它不起作用,因为它无法识别新创建的数组。
尝试这个
subtotal = hash.values.inject(0, :+)
puts subtotal
在您的代码中,您正在删除数组,但您不使用它。
从Ruby 2.4开始,您可以使用sum
:
puts "subtotal: "
puts hash.values.sum