Hay muchas maneras de hacer esto en Ruby, uno de los cuales consiste en utilizar una Proc:
foo=Proc.new do |test|
puts test
end
3.upto(8) { foo.call("hello world") }
Leer más sobre Proc:
actualización, el método anterior se podría reescribir de la siguiente manera:
# 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") }
Básicamente son métodos muy similares, con diferencias sutiles.
Y, por último, es probable que haya formas más elegantes de hacer lo que he esbozado, sea bueno escuchar a alguien de una mejor manera. Espero que esto ayude.
Muchas gracias. Para el enlace aún más. ¿Puedes ser tan amable de incluir una mención de lambdas también? Para propósito histórico. –
@Shingetsu, agregué y actualicé con lambda, así como una versión ligeramente simplificada del enfoque de proc también – stephenmurdoch
@Shingetsu: las lambdas no son históricas. Deberías casi * siempre * usarlos en lugar de Procs. Son mucho más completos y son el estándar. – Linuxios