ruby - 如何在单例类上定义类变量

标签 ruby singleton class-variables

我想在单例类上定义一个类变量。我检查了这个程序的结果:

class C
  class << self
    @@val = 100
  end
end

C.singleton_class.class_variables #=> [], I expect [:@@val]
C.class_variables #=> [:@@val]

我期望的范围是@@val成为单例类,不是吗?

你能告诉我如何使用 class << self 在单例类上定义类变量吗? ,这个程序不正确的原因是什么?

最佳答案

这是因为当Ruby解析器遇到类变量时,会根据词法范围解析当前类。

比照。 http://blog.honeybadger.io/lexical-scoping-and-ruby-class-variables/

关于ruby - 如何在单例类上定义类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33921185/

相关文章:

ruby - 部署到 heroku 的 Watir 应用程序

ruby 诅咒 : How to get ctrl/meta keys with

ruby-on-rails - 检测 Rails 是否正在运行站点

java - 单例设计和其中的新对象

c++ - 在单例类中将成员指针设置为 null 的正确方法是什么

ruby - 局部变量、实例变量和类变量有什么区别?

ruby - 类变量和扩展模块

ruby-on-rails - 多对多关系获取的脚手架表

PHP:是否可以将数据库层实现为单例?代码里面

ios - 在 Objective-C 中使用类似 C 的静态变量是不好的做法吗?