我有这段代码:
class Humanoid
def something
return 123
end
def to_s
puts "I am new person now, please let's have a fresh start!"
end
end
mermaid = Humanoid.new
此代码:
p mermaid.to_s
输出:
I am new person now, please let's have a fresh start!
但是这个:
p mermaid.something.to_s
给了我这个输出:
"123"
当我直接调用这个重写方法时,它运行我编写的代码,而当我以第二种方式链接它时,它就像原始方法一样工作。有人可以解释如何以及会发生什么?
答案 0 :(得分:2)
something
返回Fixnum
实例123
,Fixnum#to_s
(不是您定义的实例)将其转换为String
实例"123"
,由p
检查。