从外部访问Class的实例变量

Hsi*_*siu 5 ruby variables instance-variables class-variables

我理解(我认为)Ruby中类的类变量和实例变量之间的区别.

我想知道如何从OUTSIDE那个类访问类的实例变量.

从内部(即在类方法而不是实例方法中),它可以直接访问,但是从外部,有没有办法MyClass.class.[@$#]variablename呢?

我没有任何具体的理由这样做,只是学习Ruby并想知道它是否可行.

Jel*_*Cat 6

class MyClass

    @my_class_instance_var = "foo"

    class << self
        attr_accessor :my_class_instance_var
    end

end

puts MyClass::my_class_instance_var
Run Code Online (Sandbox Code Playgroud)

上述产量:

>> foo
Run Code Online (Sandbox Code Playgroud)

我相信Arkku演示了如何从类外部访问类变量(@@),而不是类实例变量(@).

我从这篇文章中得出了上述内容:明确地看到元类