arrays - Array Ruby 中实例变量的总和

标签 arrays ruby loops instance-variables

我有一个数组 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/

相关文章:

python - 3d 数组的 Numpy 元素乘积

php - array_push() 和 array_merge() 有什么区别?

ruby - 百分比运算符,字符串插值

ruby-on-rails - 如何减少 Ruby 中的长 if 条件?

SQL,如何使用每个日期列表作为过程的参数来循环?

c++ - C++ 中标量初始值设定项错误的大括号

ruby-on-rails - 禁用 gmaps4rails 's feature of searching for "gmaps4rails.css"

python - 如何从循环的每个实例收集信息?

java - 将添加的字符串返回到

javascript - 从数组中选择随机值并使用 Javascript 设置 RGB 颜色