我可以从方法中设置全局值吗?

时间:2014-02-04 18:10:34

标签: ruby global-variables

我想知道是否有办法从方法配置全局变量,例如:

Class myExample
  $my_global_variable = 0

  def initialize
    change_my_global_variable
  end

  def change_my_global_variable
     $my_global_variable = 2
  end
end


Class myExample2 < myExample

 @this_value = $my_global_variable
 #I want @this_value to be set to 2
end

#Updated:
#Currently when I tried what i have above I get the following:
#@this_value = 0 instead of 2

我正在使用非常旧的代码,我需要在加载后更改全局变量的值,因为它需要从函数中提取值。有没有办法可以初始化一个将被更改的全局变量?目前“$ my_global_variable”永远不会改变,它保持值0

2 个答案:

答案 0 :(得分:0)

永远不会调用您的方法,否则它会起作用。

您的方法在initialize中调用,但不会生成myExamplemyExample2的新实例,因此您的初始化和方法调用永远不会发生。

这是解决这个问题的一种方法:

Class myExample2 < myExample
  @this_value = change_my_global_variable
end

答案 1 :(得分:0)

是的,当然,您可以从方法中更改全局变量。但是,您永远不会调用更改全局变量的方法,因此它永远不会被更改。你需要在某处调用该方法。