LoginSignup
0
1

More than 5 years have passed since last update.

Rubyのクラス変数の取り扱いバリエーション

Posted at

個人的メモ

クラス変数を取り扱うに当たっていろんなバリエーションがあります。
基本的にはセルフを使うことが多いと思うけど、クラス変数取り扱いメソッドが増える場合はHogeがおすすめ。
class << self内に書かれているものはself内を見てくれる。

class Hoge
   @@count = 1
   class << self
       def count
           puts @@count
       end
    end
end

class Fuga
    @@count = 1
    def Fuga.count
        puts @@count
    end
end

class Haga
    @@count = 1
    def self.count
        puts @@count
    end
end

Hoge.count
Fuga.count
Haga::count

結果

1
1
1
class Moga
    @@count = 0

    def self.count
        puts @@count
    end

    def initialize
        @@count += 1
    end
end

Moga.new
Moga.count

結果

1

クラス変数は何度でも書き換え可能である。
ちなみに、attr_シリーズは使えないので注意。
書き換えようのメソッドを作って値を変更するしかない。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1