我是否为此类作业创建了额外的方法? @@variable = @global_variable
为什么?我希望有一些变量可以通过我的脚本访问值和定义,并且只有一个定义位置。
@global_variable = 'test'
class Test
@@variable = @global_variable
def self.display
puts @@variable
end
end
Test.display #gives nil
答案 0 :(得分:8)
在Ruby中,全局变量以$
为前缀,而不是@
。
$global = 123
class Foo
@@var = $global
def self.display
puts @@var
end
end
Foo.display
正确输出123。
您所做的是将一个实例变量分配给Module或Object类(不确定哪个);该实例变量不在您定义的类的范围内。