コードブロックを取るメソッドがあります。
def opportunity
@opportunities += 1
if yield
@performances +=1
end
end
そして私はそれをこのように呼びます:
opportunity { @some_array.empty? }
しかし、次のように、yieldを2回使用できるように、複数のコードブロックを渡すにはどうすればよいですか。
def opportunity
if yield_1
@opportunities += 1
end
if yield_2
@performances +=1
end
end
そして:
opportunity {@some_other_array.empty?} { @some_array.empty? }
この例は譲歩なしで実行できることを私は知っていますが、それは単に説明するためのものです。
それ自体は複数のブロックを渡すことはできませんが、複数のprocまたはラムダを渡すことはできます。
1.9構文の使用:
opportunity ->{ @some_array.empty? }, ->{ @some_other_array.empty? }
そしてメソッド自体で:
def opportunity(lambda1, lambda2)
if lambda1.()
@opportunities += 1
end
if lambda2.()
@performances += 1
end
end