Ruby のクラスのクラス変数とインスタンス変数の違いを理解しています (と思います)。
そのクラスの外側からクラスのインスタンス変数にどのようにアクセスできるのか疑問に思っています。
内部から (つまり、インスタンス メソッドではなくクラス メソッド内で) 直接アクセスできますが、外部からアクセスする方法はありますMyClass.class.[@$#]variablename
か?
Rubyを学んでいて、それが可能かどうか疑問に思っているだけで、これを行う特別な理由はありません。
Ruby のクラスのクラス変数とインスタンス変数の違いを理解しています (と思います)。
そのクラスの外側からクラスのインスタンス変数にどのようにアクセスできるのか疑問に思っています。
内部から (つまり、インスタンス メソッドではなくクラス メソッド内で) 直接アクセスできますが、外部からアクセスする方法はありますMyClass.class.[@$#]variablename
か?
Rubyを学んでいて、それが可能かどうか疑問に思っているだけで、これを行う特別な理由はありません。
class MyClass
@my_class_instance_var = "foo"
class << self
attr_accessor :my_class_instance_var
end
end
puts MyClass::my_class_instance_var
前述の結果は次のとおりです。
>> foo
Arkku は、クラスの外部からクラスインスタンス変数 (@) ではなく、クラス変数 (@@) にアクセスする方法を示したと思います。
私はこのエッセイから前述のことを引き出しました: Seeing Metaclasses Clearly