Pregunta

C:\>irb
irb(main):001:0> s = Proc.new { puts "Hello" }
=> #<Proc:0x04051780@(irb):1>
irb(main):002:0> s.call
Hello
=> nil

¿Qué causa el nulo?

ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
¿Fue útil?

Solución

s no devuelve un valor, Como @ sepp2k señala en el comentario, pone devuelve nil , por lo que nil se convierte automáticamente en el valor de retorno ya que esa es la última instrucción en el proceso.

Simplemente se imprime en el terminal como el valor de retorno de la última declaración, similar a esa salida críptica después de asignar el proceso a s .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top