gpt4 book ai didi

ruby - remove_const :File

转载 作者:太空宇宙 更新时间:2023-11-03 16:36:03 25 4
gpt4 key购买 nike

这段代码在做什么?

class Object
remove_const :File
end

是否完全删除[1] 类?当我在那段代码之后调用 File.instance_methods 时,它只是显示从 Object/Kernel 继承的方法。

是否可以将其恢复到原始状态?我的意思是,在使用 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,我们将得到“未初始化的常量文件”。所以在这种情况下文档具有误导性......

关于 ruby - remove_const :File,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7513727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com