ruby - 我可以使用全局变量初始化类变量吗? ( ruby )

标签 ruby class-design scope class-variables

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

@global_variable = 'test'

class Test

@@variable = @global_variable

  def self.display
    puts @@variable
  end
end

Test.display #gives nil

最佳答案

在 Ruby 中,全局变量的前缀是 $,而不是 @

$global = 123

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

Foo.display

正确输出 123。

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

关于ruby - 我可以使用全局变量初始化类变量吗? ( ruby ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349429/

相关文章:

ruby - 将 cocoapods 更新到最新版本没有任何作用

C++ 理解 vector 创建的 size_t 行为

java - 如何重用 Web 服务实例?

c# - 正确使用类?

php - 引用:什么是变量作用域?哪些变量可从何处访问?什么是“ undefined variable ”错误?

ruby-on-rails - 销毁后不被要求销毁协会?

html - Ruby Unit::测试通过忽略空格来比较 html 输出

ruby-on-rails - 使用 Instagram gem 获取所有用户的图片

javascript - 从 HTTP.get 访问变量

javascript - Javascript模块中的变量在外面可见吗?