Ruby:为什么nil.to_s返回"",但是nil.inspect返回" nil"

时间:2012-09-12 19:50:14

标签: ruby null

为什么nil.to_s会返回"",但nil.inspect会返回"nil"(当显然.inspect使用.to_s方法时)

2 个答案:

答案 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等效。