我有一个数组 item_list = [item1, item2, item3,] 存储有价格的对象。 我想计算这些价格的总和并将其显示为总计。
我试着这样做:
print "Items:"
item_list.each do |item|
print " #{item.name},"
prices_arr = []
prices_arr << item.price
sum = prices_arr.sum
end
puts "Total: #{sum}"
但我收到错误消息,未定义的局部变量或方法“sum”。 如果我将“总计:#{sum}”放入循环中,它会给我每个项目,然后是它的价格,但不是总计。 有什么想法吗?
最佳答案
你的方法的问题是变量 sum 是在循环内定义的,这就是为什么它的范围被限制在循环内的原因
print "Items:"
item_list.each do |item|
print " #{item.name},"
prices_arr = []
prices_arr << item.price
sum = prices_arr.sum
end
puts "Total: #{sum}"
所以,更好的方法是:-
sum = 0
print "Items:"
item_list.each do |item|
print " #{item.name},"
sum += item.price
end
puts "Total: #{sum}"
关于arrays - Array Ruby 中实例变量的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341319/