相关疑难解决方法(0)

Ruby类实例变量与类变量

我读过" Ruby实例变量什么时候设置? "但我在使用类实例变量时有两种想法.

类变量由类的所有对象共享,实例变量属于一个对象.如果我们有类变量,那么使用类实例变量的余地就不大了.

有人可以解释这两者之间的区别以及何时使用它们?

这是一个代码示例:

class S
  @@k = 23
  @s = 15
  def self.s
    @s
  end
  def self.k
     @@k
  end

end
p S.s #15
p S.k #23
Run Code Online (Sandbox Code Playgroud)

我现在明白了,Class Instance Variables不会传递给继承链!

ruby instance-variables class-variables class-instance-variables

172
推荐指数
6
解决办法
11万
查看次数

Ruby类变量是不是很糟糕?

当我实现"实例"/单例类型模式时,RubyMine通知使用类变量被认为是错误形式.

我遇到的唯一信息是使用类变量可以使继承有点松散.以下代码会给我带来问题还有其他原因吗?

class Settings
  private_class_method :new
  attr_accessor :prop1
  attr_accessor :prop2

  @@instance = nil

  def Settings.instance_of
    @@instance = new unless @@instance
    @@instance
  end
  def initialize
    @prop2 = "random"
  end
end
Run Code Online (Sandbox Code Playgroud)

另外,有没有更好的方法,从Ruby方面来说,实现相同的目标,以确保只有一个实例?

ruby singleton

5
推荐指数
2
解决办法
1552
查看次数