J'ai une méthode qui prend un bloc de code.Passage de plusieurs blocs de code comme arguments dans Ruby
def opportunity
@opportunities += 1
if yield
@performances +=1
end
end
et je l'appelle comme ceci:
opportunity { @some_array.empty? }
Mais comment puis-je passer plus d'un bloc de code pour que je puisse utiliser le rendement deux fois, quelque chose comme ceci:
def opportunity
if yield_1
@opportunities += 1
end
if yield_2
@performances +=1
end
end
et:
opportunity {@some_other_array.empty?} { @some_array.empty? }
Je suis conscient que cet exemple pourrait être fait sans rendement, mais c'est juste pour illustrer.
Est-ce un autre moyen de déclarer que les fonctions – user5020
Proc.new {} ou lambda {} fonctionnent également. Tout objet qui répond à 'call' fonctionnera – Kylee
Est-ce que la méthode'.() 'Est un alias de' .call'? – MrYoshiji