2011-01-26 180 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的唯一實例。然後,零響應方法,可以猴子修補。事實上,你可以對任何其他課程做任何事情(考慮到它是單身人士)。