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

mic*_*lec 8 ruby null

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

dur*_*ill 21

Object类"inspect"方法应该返回对象人类可读版本.

人类可读的版本nil是"nil"而不是""(这是字符串的人类可读版本"").
这就是为什么nil.inspect应该返回"nil",而nil.to_s返回""以便按照通常的预期"a string" + nil返回"a string"(例如在其他语言中).


old*_*inb 5

请参阅中的文档NilClass.inspect。它声明它将返回"nil"并且不保证与等效to_s