考虑以下代码
class Raj
def to_s
puts 'abc'
return 'hello'
end
end
obj=Raj.new
puts obj
输出
abc
hello # hello is printed because to_s returned the value of 'hello'
但请查看下面的代码段
class Raj
def to_s
puts 'abc'
end
end
obj=Raj.new
puts obj
输出
abc
<Raj:0x899610> #Object address this time
这里打印对象的地址,但根据上面的代码,它必须打印返回的值,所以对于第二个编码片段,它必须是nil,因为puts会返回nil的值,对吗?为什么不打印?我知道无法打印零值但是必须打印空白区域,但是它打印了对象地址,因此它确定它不是零。为什么会这样?