9

我知道这似乎是一个非常简单的问题,但我的 put 不断生成“=> nil”确实让我很困扰,我搜索了答案但找不到答案。谢谢。

puts 'blink' *4 blink blink blink blink => nil

4

3 回答 3

9

因为那是的返回值puts

puts(obj, ...) → 无

与 IO#print 一样将给定对象写入 ios。在尚未以换行序列结尾的任何内容之后写入记录分隔符(通常是换行符)。如果使用数组参数调用,则将每个元素写入新行。如果不带参数调用,则输出单个记录分隔符。

来源:http ://www.ruby-doc.org/core-1.9.3/IO.html#method-i-puts

另外,我认为这只是在irb?因为在普通应用程序中调用puts不会显示它的返回值。

于 2013-02-07T00:08:51.700 回答
7

您可能想要使用p而不是puts。

p打印然后返回值。

于 2015-02-09T19:11:48.587 回答
3

Hunter McMillen 的回答是正确的。

但是,如果您想要一个实际返回非零值的 puts 替换,我创建了一个名为 reputs 的 gem

reputs 'blink ' *4
blink blink blink blink
=> "blink blink blink blink "
于 2014-02-02T06:21:29.470 回答