クラス変数。

昨日、クラスを作ったけど、クラス変数はないと思いきや、リファレンスマニュアルを読み込んでいると発見。

class Hoge
  @@huga = "huga"

  def get_huga
    return @@huga
  end

end

hoge = Hoge.new
p hoge.get_huga

@@で始まる変数がクラス変数。
結果。

"huga"

attr_accessorは使えない。

class Hoge
  @@huga = "huga"
  attr_accessor:huga
end

p Hoge.huga

結果。

undefined method `huga' for Hoge:Class (NoMethodError)

怒られる。