【发布时间】:2012-09-05 21:26:06
【问题描述】:
为什么nil.to_s返回"",而nil.inspect返回"nil"(显然.inspect使用.to_s方法)
【问题讨论】:
为什么nil.to_s返回"",而nil.inspect返回"nil"(显然.inspect使用.to_s方法)
【问题讨论】:
请参阅NilClass.inspect 上的文档。它声明它将返回"nil",并且不保证与to_s 等效。
【讨论】:
"inspect" method of the Object class 应该返回对象的人类可读 版本。
nil 的人类可读版本是“nil”而不是“”(这是字符串 "" 的人类可读版本)。
这就是为什么nil.inspect 应该返回“nil”,而nil.to_s 返回“”,以便"a string" + nil 按照通常预期的方式返回"a string"(例如在其他语言中)。
【讨论】: