根據使用的語法,爲什麼重新打開嵌套模塊會得到不同的結果?例如,這工作得很好:在Ruby中重新打開嵌套模塊異常
module A
module E
end
end
module A
module E
def E.e
end
end
end
但這:
module A
module E
end
end
module A::E
def E.e
end
end
給出了錯誤:
reopen.rb:6:in `<module:E>': uninitialized constant A::E::E (NameError)
from reopen.rb:5:in `<main>'
(有人指出這一點之前,一個解決方法是使用self
代替在定義Ee時的模塊名稱,但這不是這篇文章的要點)。
那麼,有什麼問題? –
公平點 - 改寫。 –