为什么nil.to_s
会返回""
,但nil.inspect
会返回"nil"
(当显然.inspect
使用.to_s
方法时)
答案 0 :(得分:19)
"inspect" method of the Object class应该返回该对象的人类可读版本。
人类可读的nil
版本是“nil”而不是“”(这是字符串""
的人类可读版本)。
这就是为什么nil.inspect
应该返回“nil”,而nil.to_s
返回“”以便"a string" + nil
返回"a string"
,因为它通常是预期的(例如在其他语言中)。
答案 1 :(得分:4)
请参阅NilClass.inspect
上的文档。它声明它将返回"nil"
并且不保证与to_s
等效。