【发布时间】:2011-12-27 11:49:52
【问题描述】:
我知道我可以通过 Kernel#global_variables 查看所有全局变量,但是有没有类似于 remove_instance_variable、remove_class_variable、remove_const 方法的方法来删除它们?或者有没有办法用它们来完成同样的事情?
【问题讨论】:
-
我不这么认为。 (你为什么想要?)
-
您可以为其分配一个
nil值。但是,像 cmets 一样,为什么要定义和删除全局变量?应该避免使用全局变量,因为它们可以在代码中的任何地方被覆盖。如果必须使用它们,请极其谨慎地使用它们。 -
由于 gc 延迟 ObjectSpace#define_finalizer 可能无法立即知道何时对象不再被变量引用。 Kernel#trace_var,唯一在变量更改时触发的回调,仅适用于全局变量
-
有时使用 setter 函数是不切实际或不可能的,原因有很多
标签: ruby global-variables