1
我在ruby文檔中看到了module_function中的示例。我不理解Mod.one返回舊的「這是一個」的代碼的後半部分,並且c.one返回更新後的「這是新的」。這是如何發生ruby文檔中的module_function示例
這是從文檔
module Mod
def one
"This is one"
end
module_function :one
end
class Cls
include Mod
def call_one
one
end
end
Mod.one #=> "This is one"
c = Cls.new
c.call_one #=> "This is one"
module Mod
def one
"This is the new one"
end
end
Mod.one #=> "This is one"
c.call_one #=> "This is the new one"
爲什麼Mod.one返回舊代碼,但CLS對象是能夠訪問一個新的實際代碼? 謝謝。
我打算編輯'callOne'到'call_one',除非你在文檔中注意到它是這樣的。我會在某個階段提交關於此的錯誤報告。 – 2011-03-01 22:39:49
現已修復:http://redmine.ruby-lang.org/issues/4469 – 2011-03-05 21:49:17