在Ruby中删除全局变量的方法?

时间:2011-11-12 03:40:53

标签: ruby global-variables

我知道我可以通过Kernel#global_variables查看所有全局变量,但有没有任何方法可以删除它们类似于remove_instance_variable,remove_class_variable,remove_const方法?或者有没有办法用它来完成同样的事情?

1 个答案:

答案 0 :(得分:0)

我不相信它可能会导致"未设置"全局变量。您最好的选择是将变量设置为nil

通常情况下,当您尝试使用尚未定义的变量时,Ruby会抛出错误。

irb > "The following variable has not yet been defined: #{a}"
irb > NameError: undefined local variable or method `a' for main:Object

这种行为实际上与全局变量不同。任何调用尚未定义的全局变量的尝试都将返回nil

irb > "The following global variable has not yet been defined: #{$a}"
  # => The following global variable has not yet been defined: 
irb > $a.class
  # => NilClass

因此,将全局变量设置为nil应该具有与您期望的完全相同的行为"取消设置"它