新手问题 Ruby 程序在运行过程中,能将已经 require 的 rb 文件从环境变量中剔除吗?

yangbw4978 · 2015年11月22日 · 最后由 yangbw4978 回复于 2015年11月24日 · 1719 次阅读

ruby 程序在运行过程中,能将已经 require 的 rb 文件从环境变量中剔除吗?

require 会加载并执行一个 ruby 脚本,执行之后,去不去掉这个 require 都已经晚了。 即,require 不是把脚本放在某个「列表」中备用,而是执行一次就结束的过程。

但你有办法把这个脚本中定义的东西都删掉

#1 楼 @qhwa 意思是 我 require 了的一系列的类都能删掉?怎么删呢 我尝试吧$LOAD_PATH 里的相关路径删了 但是没有用

class A
end

Object.send(:remove_const, :A)

#3 楼 @davidqhr 非常感谢 我试试

#2 楼 @yangbw4978 删除文件是没用的。 生效的不是文件,而是文件里的内容。

比如你淘宝买了个东西,快递给你送上门了。 这时候你回到淘宝把订单删掉,快递也不会被传送给卖家。

#3 楼 @davidqhr 你好 我是了这个方法,被删掉的类是不能实例化了,但为什么在 ObjectSpace 中还有这个类的信息呢?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号