チェリー本:色々な変数

ここまでにローカル変数やインスタンス変数などには触れてきたが、Rubyには色んな種類の変数がある。紹介されていた変数を下記にまとめる。

変数名 定義方法 ポイント
グローバル変数 $付き変数 プログラムのどこからでも参照、代入可能
正規表現で用いる$1など予約語として決められているものもある。それらを『組み込み変数』、『特殊変数』とかと呼ぶ
クラス変数 @@付き変数 クラス、サブクラスから同一の変数として呼び出し可能。変更すると関係するクラス全部に影響するので注意
クラスインスタンス変数 クラス構文直下またはクラスメソッド内部に@付き変数 インスタンスメソッドからは参照できず、クラスメソッドからしか呼び出せない。
インスタンス変数 インスタンスメソッド内で@付き変数 インスタンスメソッド内で共有される

各変数のイメージは下記。クラス変数は関係するクラスに1つで、クラスインスタンス変数は関係するクラスの数、インスタンス変数は関係するインスタンスの数だけある感じかな🧐

varias_val.png