variable objects for example ruby syntax

objects - ruby>=



Sintaxis para poner un bloque en una sola lĂ­nea (3)

Necesitas poner en paréntesis tu argumento:

something(''hello'') { do_it }

Eso debería funcionar.

Así que tengo un método Ruby como este:

def something(variable, &block) .... end

Y quiero llamarlo así:

something ''hello'' { do_it }

Excepto que eso no funciona para mí, obtengo un error de sintaxis. Si hago esto, funciona:

something ''hello'' do do_it end

Excepto que me extraña el aspecto agradable de estar en una línea.

Puedo ver por qué sucede esto, ya que podría parecer que se pasa un hash como una segunda variable, pero sin una coma entre las variables ... pero supongo que debe haber una forma de lidiar con esto que yo '' me falta ¿Esta ahí?


Si quiere "def def algo" para aceptar un bloque, necesita ceder datos a ese bloque. Por ejemplo:

#to uppercase string def something(my_input) yield my_input.upcase end # => "HELLO WORLD" something("hello world") { |i| puts i}


Uh, ¿qué hay de:

>> def something(arg1 , &block) >> yield block >> end => nil >> def do_it >> puts "Doing it!" >> end => nil >> something(''hello'') { do_it } "Doing it!" => nil