and ruby block proc

and - proc ruby



Cómo almacenar bloques de código rubí (1)

Quiero almacenar un "bloque de código" en una variable para ser reutilizada, algo como:

block = do |test| puts test end 3.upto(8) block

¿Puede alguien mostrarme lo que estoy haciendo tan obviamente mal? (O si es simplemente imposible)


Hay muchas maneras de hacer esto en Ruby, una de las cuales es usar un Proc:

foo=Proc.new do |test| puts test end 3.upto(8) { foo.call("hello world") }

Lea más sobre Procs:

Actualización, el método anterior podría reescribirse como sigue:

# 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") }

Son básicamente métodos muy similares, con diferencias sutiles.

Y, finalmente, probablemente haya formas más elegantes de hacer lo que he descrito, sea bueno saber de alguien que tenga una mejor manera. Espero que esto ayude.