>> p "hi"; puts p "hello"
"hi"
"hello"
hello
=> nil
从输出中可以很清楚地看到,"hi"
并且"hello"
已经被两个p
. 然后puts
打印在下面;
hello
=> nil
但问题是:作为p
回报
"hello"
=> "hello"
什么puts
从左边或右边收到的p
?现在为了更深入地了解这一点,我尝试了以下方法:
>> p "hi"; puts print "hello"
"hi"
hello
=> nil
看了上面,我的理解是p
打印了它的一个。与以下输出部分混淆。
hello
=>nil
是hello
印刷print
的时候左边的=> nil
哪里?如果我认为puts
已经用print
返回值触发了,nil
那么输出应该是
hello
=>nil # the extra blank line is for `nil.to_s` .
但从实际输出我无法得出结论。如果我认为puts
已经用print
s 打印值触发了,hello
那么输出应该是
hello
=>nil # then where the output of print statement went out?
但从实际输出我无法得出结论。
我正在使用 Ubuntu 12.10 和 Ruby 1.9.3。谁能帮助我了解发生了什么?