我知道这可能看起来像一个非常简单的问题,但是我的puts语句不断地生成“=> nil”,我已经搜索了答案,但是找不到。谢谢。
注:该段代码输出字符串"blink "连续四次,并在最后打印"=> nil"。puts 'blink ' *4 blink blink blink blink => nil
puts
的返回值:
源代码: http://www.ruby-doc.org/core-1.9.3/IO.html#method-i-puts 此外,我假设这只是在puts(obj, ...) → nil
像IO#print一样将给定的对象写入到ios中。 在没有换行符序列结束的任何情况下,都会写入记录分隔符(通常是换行符)。 如果使用数组参数调用,则将每个元素写入新行。如果不带参数调用,则输出单个记录分隔符。
irb
中?因为在普通应用程序中调用puts
不会显示其返回值。p
而不是put
s。
p
会打印并返回值。reputs 'blink ' *4
blink blink blink blink
=> "blink blink blink blink "
irb
是可以的,我只是想指出,在任何不在irb
中的 Ruby 程序中,除非你专门检查返回值,否则它不会向你显示。 - Hunter McMillen