Tengo un método que toma un bloque de código.Pasar múltiples bloques de código como argumentos en Ruby
def opportunity
@opportunities += 1
if yield
@performances +=1
end
end
y yo lo llaman así:
opportunity { @some_array.empty? }
Pero, ¿cómo lo paso más de un bloque de código para que pudiera usar un rendimiento dos veces, algo como esto:
def opportunity
if yield_1
@opportunities += 1
end
if yield_2
@performances +=1
end
end
y:
opportunity {@some_other_array.empty?} { @some_array.empty? }
Soy consciente de que este ejemplo podría realizarse sin rendimiento, pero es solo para ilustrar.
Es otra forma de declarar que las funciones – user5020
Proc.new {} o lambda {} también funcionan. Cualquier objeto que responda a 'call' funcionará – Kylee
¿El método'.() 'Es un alias de' .call'? – MrYoshiji