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