1

我是否为这种分配创建了额外的方法?@@variable = @global_variable为什么?我希望有一些变量可以保存值和定义,以便通过我的脚本进行访问,并且只有一个定义位置。

@global_variable = 'test'

class Test

@@variable = @global_variable

  def self.display
    puts @@variable
  end
end

Test.display #gives nil
4

1 回答 1

9

在 Ruby 中,全局变量以 a 为前缀$,而不是 a @

$global = 123

class Foo
    @@var = $global
    def self.display
        puts @@var
    end
end

Foo.display

正确输出 123。

您所做的是将实例变量分配给 Module 或 Object 类(不确定哪个);该实例变量不在您定义的类的范围内。

于 2010-02-27T23:50:34.677 回答