簡體   English   中英

Ruby-將方法應用於所有塊變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM