Pergunta

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

O que faz com que o nulo?

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

Solução

s não retorna um valor, Como @ sepp2k pontos fora no comentário, puts retornos nil, então nil torna-se automaticamente o valor de retorno, uma vez que é a última declaração no proc.

Ele só fica impressa no terminal como o valor de retorno da última declaração, semelhante à saída enigmática depois de atribuir o proc para s.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top