Ho un metodo che accetta un blocco di codice.Passaggio di più blocchi di codice come argomenti in Ruby
def opportunity
@opportunities += 1
if yield
@performances +=1
end
end
e mi chiamano in questo modo:
opportunity { @some_array.empty? }
Ma come faccio a passare più di un blocco di codice in modo che potessi usare rendimento due volte, qualcosa di simile:
def opportunity
if yield_1
@opportunities += 1
end
if yield_2
@performances +=1
end
end
e:
opportunity {@some_other_array.empty?} { @some_array.empty? }
Sono consapevole che questo esempio potrebbe essere fatto senza rendimento, ma è solo per illustrare.
È anche un altro modo per dichiarare che funzionano anche le funzioni – user5020
Proc.new {} o lambda {}. Qualsiasi oggetto che risponde a 'call' funzionerà – Kylee
Il metodo'.() 'Un alias di' .call'? – MrYoshiji