[英]Ruby - Apply method on all block variables
例如,sum = 0
2.times do |v1, v2, v3 , v4|
v1 = FactoryGirl...
v2 = FactoryGirl...
..
v4 = ...
sum =
end
現在總的來說,我想添加一個屬性值,該屬性來自塊中的每個對象,例如
sum = v1[:nr_sales] + v2[:nr_sales] +...
有沒有辦法立即執行此操作(將方法應用於該塊的所有參數)?
程序段參數接受Splat運算符:
def foo
yield 1, 2, 3, 4
end
foo { |*args| puts args.inject(:+) } #=> 10
因此,在您的情況下,您可以執行以下操作:
2.times do |*args|
sum = args.sum { |h| h[:nr_sales] }
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.