2011-01-26 202 views
3

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

任何人都可以更详细地解释我或分享一些链接进一步阅读?

回答

6

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

例如,如果没有满足条件的项目,则应该找到满足某个条件的项目的方法将返回nil。或者访问i元素的元素将会返回nil

除了可以在其上调用Object方法(即定义在每个对象上的方法)而没有引发异常之外,它与其他语言中的空指针具有相似的用途。

+0

`nil`的一个有点特别的行为是,它是唯一一个除了`false`之外缺乏真实性的对象。 – 2011-01-26 22:01:41

0

认为零为空。但是因为Ruby中的所有东西都是一个对象,所以nil是单例类NilClass的唯一实例。然后,零响应方法,可以猴子修补。事实上,你可以对任何其他课程做任何事情(考虑到它是单身人士)。