¿Por qué este código produce un nulo después de una llamada Proc.call?
-
07-07-2019 - |
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]
Solución
Como @ sepp2k señala en el comentario, s
no devuelve un valor, 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