Il y a plusieurs façons de le faire en Ruby, dont un est d'utiliser un Proc:
foo=Proc.new do |test|
puts test
end
3.upto(8) { foo.call("hello world") }
En savoir plus sur Procs:
mise à jour, pourrait être réécrite la méthode ci-dessus comme suit:
# using lower-case **proc** syntax, all on one line
foo = proc { |test| puts test }
3.upto(8) { foo.call("hello world") }
# using lambda, just switch the method name from proc to lambda
bar = lambda { |test| puts test }
3.upto(8) { bar.call("hello world") }
Ils sont essentiellement des méthodes très similaires, avec des différences subtiles. Enfin, il y a probablement des façons plus élégantes de faire ce que j'ai esquissé, faites-vous plaisir d'entendre quelqu'un de mieux. J'espère que cela t'aides.
Merci beaucoup. Pour le lien encore plus. Pouvez-vous être aussi gentil que d'inclure une mention de lambdas aussi bien? Pour un but historique. –
@Shingetsu, j'ai ajouté et mis à jour avec lambda, ainsi que d'une version légèrement simplifiée de l'approche proc trop – stephenmurdoch
@Shingetsu: Lambdas ne sont pas historiques. Vous devriez presque * toujours * les utiliser au lieu de Procs. Ils sont beaucoup plus complets et sont la norme. – Linuxios