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

什么原因导致零?

ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-mswin32]
4

1 回答 1

3

s不返回值,正如@sepp2k 在评论中指出的那样,puts返回nil,所以nil自动成为返回值,因为这是过程中的最后一条语句。

它只是作为最后一条语句的返回值打印到终端,类似于将 proc 分配给s.

于 2009-09-16T16:54:22.947 回答