Ruby和nil对象

时间:2011-01-26 12:15:47

标签: ruby

我是红宝石世界的新手,我正在研究它。我已经阅读了关于nil对象的谷歌,但仍然无法弄清楚它是什么?

任何人都可以向我解释更多细节或分享一些链接以供进一步阅读吗?

2 个答案:

答案 0 :(得分:6)

nilNilClass类的唯一实例。它没有任何特殊的行为(除了它在布尔上下文中被解释为false的事实(例如在if条件下),正如Andrew Grimm有用地指出的那样)。 nil的目的是表示“没有结果”。

例如,如果没有符合条件的项目,那么应该找到满足特定条件的项目的方法将返回nil。或者访问数量少于i的数组的i元素将返回nil

它与其他语言中的空指针具有相似的目的,除了您可以在其上调用Object方法(即在每个对象上定义的方法)而不会导致异常。

答案 1 :(得分:0)

将nil视为null。但由于Ruby中的所有内容都是对象,因此nil是单例类NilClass的唯一实例。然后,零响应方法,可以猴子修补。事实上,你可以对任何其他类做任何事情(考虑到它是单身)。