10

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

4

2 回答 2

24

Object 类的“inspect”方法应该返回对象的可读版本。

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

于 2012-09-12T19:56:05.887 回答
6

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

于 2012-09-12T19:53:31.737 回答