この部分は機能します:
class Example1
@@var1= "var1 in the Example1"
def get_var1
@@var1
end
end
example1 = Example1.new
example1.get_var1
# => "var1 in the Example1"
しかし、固有クラスを試してみると:
def example1.get_var1
@@var1
end
example1.get_var1
# NameError: uninitialized class variable @@var1 in Object
# from (pry):128:in `get_var1'
Ruby は@@var1
のObject
代わりに を検索しExample
ます。
このコードを Ruby 1.9.3 と 2.0 でテストしましたが、結果は同じでした。
なぜそれが起こるのですか?
2 つ目は、オフにできexample.get_var1
ますか (オブジェクト内のクラス変数を検索しません)。