クラスメソッドがよくわからなくなってきた。

こんなことをしてみた。

class Hoge
  attr_accessor:huga
  def self.get_huga
    return @huga
  end
end

クラスメソッドからインスタンス変数を触るという神もおそれぬ暴挙をし、実行してみたところ、怒られることなく終了してしまった。
実際にアクセスしてみたら怒られるだろうと試してみた。

hoge1 = Hoge.new
hoge1.huga = "huga1"
p Hoge.get_huga

結果。

nil

怒られなかった。
なんかよくわからなくなってきたので、リファレンスマニュアルを読んでみると、

クラスの特異メソッドをクラスメソッドと呼びます。特異メソッドは オブジェクトの固有のメソッドだと説明したばかりですが、Rubyには、 メタクラスという概念があり、すべてのクラスは、同名のメタクラスと いうものを持っていて、これは、Classクラスのインスタンスになって います。ここにクラスメソッドが定義されます。

僕の理解力不足が原因だろう、ますますわからなくなった。
まぁ、nilが返ってくるのだからよしとして、とりあえずこの件は置いておこう。