foo = [10,20,30,40,50,60]
foo_total = 0
foo.each do |f|
print foo_total += f
end
print foo_total
此代码示例的输出为10 30 60 100 150 210 210
,但我实际上正在寻找10 20 30 40 50 60 210
我知道可以使用以下代码
foo = [10,20,30,40,50,60]
foo_total = 0
foo.each do |f|
print f
foo_total += f
end
print foo_total
但是,是否有更优雅的方法只需要foo.each
块中的一行?
编辑:它不仅关于输出,还关于变量foo_total包含foo中所有值的总和
答案 0 :(得分:1)
执行以下操作
(arup~>~)$ pry --simple-prompt
>> foo = [10,20,30,40,50,60]
=> [10, 20, 30, 40, 50, 60]
>> foo.push(foo.inject(:+))
=> [10, 20, 30, 40, 50, 60, 210]
>>
答案 1 :(得分:1)
怎么样:
foo.each do |f|
foo_total += f.tap { |f1| print f1 }
end