![](/img/trans.png)
[英]Ruby issue using Object.send(:remove_const, 'MyClass')
[英]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.