Effective Rubyの勉強メモです。
インスタンス変数とクラス変数
クラス内で@
が先頭につく変数はインスタンス変数を表します。
インスタンス変数はオブジェクト一つ一つが持つプライベートな変数です。オブジェクトのあるインスタンス変数に値をセットしてもほかのオブジェクトのインスタンス変数には影響を及ぼしません。
特別な変数にクラス変数というものもあります。@@
が先頭につく変数で、クラスで一つの値を持ち、そのクラスのインスタンスすべてで共有されます。
もちろん、クラス変数の値を更新すると、すべてのインスタンス変数が更新後の値を使うようになります。
クラス変数を使う一般的な用途の一つにシングルトンがあります。
続きを読む