簡體   English   中英

Ruby-remove_const:文件

[英]Ruby - remove_const :File

這段代碼在做什么?

class Object
   remove_const :File
end

它會完全刪除[1]類嗎? 當我在那段代碼之后調用File.instance_methods ,它只是顯示從對象/內核繼承的方法。

是否可以將其還原為原始狀態? 我的意思是,在使用remove_const ,是否有辦法將類恢復為原始狀態? (不保存以前的類定義。)

[1]很抱歉使用“刪除”一詞

根據文檔: http : //apidock.com/ruby/Module/remove_const

無法刪除預定義的類和單例對象(例如true)。

因此,此方法對File類無效。 這就是為什么您可以在File上使用instance_methods原因。 類文件仍然存在。

刪除某個類后,如果要再次使用它,則必須再加載一次(或運行該類的代碼)。

重要說明 :這只是理論,但實踐證明(在注釋中undur_gongor和Andrew Grimm指出了什么),對於Ruby 1.8.7和Ruby 1.9.2,我們將獲得“未初始化的常量文件”。 因此在這種情況下文檔會產生誤導性...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM