如何在“默认”范围内访问变量

时间:2011-07-01 08:49:16

标签: ruby

如何在其他类定义的“默认”范围内访问var,做这样的事情?

var = 1

class MyClass
def self.show
var
end

MyClass.show #=> 1

和BTW我注意到“默认”范围内的self返回main,这是什么?

2 个答案:

答案 0 :(得分:3)

我确信有更好的方法,但是对Ruby不熟悉,我会使用$var代替var。这样做使它成为全球性的。 : - )

答案 1 :(得分:0)

这是不可能的。定义为var = ...的变量始终是局部变量。

定义全局变量由$var = ...完成。

另一个更糟糕的方法是定义一个实例变量(@var = ...),但这需要你以某种方式将main实例放入你的MyClass.show中,而这似乎不是值得的工作。