免責聲明:從ruby koans紅寶石:一類定義明確的範圍界定
這是從類中的作用域常數的討論採取代碼。這是一對夫婦的幾節課的確定指標:
class Animal
LEGS = 4
def legs_in_animal
LEGS
end
end
class MyAnimals
LEGS = 2
class Bird < Animal
def legs_in_bird
LEGS
end
end
end
在這一點上做的MyAnimals::Bird.new.legs_in_bird
結果2,我明白爲什麼 - 繼承層次結構之前,搜索常數詞法空間。
那麼這個類的定義:
class MyAnimals::Oyster < Animal
def legs_in_oyster
LEGS
end
end
本教程說,現在要求MyAnimals::Oyster.new.legs_in_oyster
導致4,我不能弄明白。在我看來,Oyster是MyAnimals中的一個嵌套類,因此我期望它的行爲與Birds類的行爲相同。我錯過了一些關於使用顯式範圍方法聲明類Oyster的關鍵信息。
任何人都可以向我解釋這個嗎?我已經通過谷歌發現了數百個ruby類教程,但沒有一個能夠解決這種情況。
預先感謝您...
有沒有人編寫代碼,取決於哪個常量會先到達? – 2011-02-17 22:37:31