30
我有一個需要代碼塊的方法。在Ruby中傳遞多個代碼塊作爲參數
def opportunity
@opportunities += 1
if yield
@performances +=1
end
end
,我這樣稱呼它:
opportunity { @some_array.empty? }
但我怎麼把它傳遞不止一個代碼塊,這樣我可以用產量的兩倍,這樣的事情:
def opportunity
if yield_1
@opportunities += 1
end
if yield_2
@performances +=1
end
end
和:
opportunity {@some_other_array.empty?} { @some_array.empty? }
我知道這個例子可以在沒有收益的情況下完成,但這只是爲了說明。
是否聲明函數 – user5020 2015-05-07 19:11:54
Proc.new {}或lambda {}也有效。任何響應'call'的對象都可以工作 – Kylee 2015-09-08 16:35:55
方法'。()'.call'的別名? – MrYoshiji 2015-11-24 19:50:57