我是红宝石世界的新手,我正在研究它。我已经阅读了关于nil
对象的谷歌,但仍然无法弄清楚它是什么?
任何人都可以向我解释更多细节或分享一些链接以供进一步阅读吗?
答案 0 :(得分:6)
nil
是NilClass
类的唯一实例。它没有任何特殊的行为(除了它在布尔上下文中被解释为false的事实(例如在if
条件下),正如Andrew Grimm有用地指出的那样)。 nil
的目的是表示“没有结果”。
例如,如果没有符合条件的项目,那么应该找到满足特定条件的项目的方法将返回nil
。或者访问数量少于i
的数组的i
元素将返回nil
。
它与其他语言中的空指针具有相似的目的,除了您可以在其上调用Object
方法(即在每个对象上定义的方法)而不会导致异常。
答案 1 :(得分:0)
将nil视为null。但由于Ruby中的所有内容都是对象,因此nil是单例类NilClass的唯一实例。然后,零响应方法,可以猴子修补。事实上,你可以对任何其他类做任何事情(考虑到它是单身)。