ruby のクラス変数はキモくて自分は一切使っていない。どういう風にキモいのか。
継承したクラスも含めて共通になってしまうのでめっちゃ使いづらい。
クラスのインスタンス変数なら継承したクラスとは共通にならないので使いやすい。クラスインスタンス変数を使いましょう。
class Hoge
@@hoge = 'a'
def self.hoge=(hoge)
@@hoge = hoge
end
def self.hoge
@@hoge
end
end
class Moge < Hoge
end
Moge.hoge
#=> 'a'
Hoge.hoge
#=> 'a'
Moge.hoge = 'b'
Moge.hoge
#=> 'b'
Hoge.hoge
#=> 'b' # こっちも変わっちゃうクラスのインスタンス変数なら継承したクラスとは共通にならないので使いやすい。クラスインスタンス変数を使いましょう。
