変数の区別
ローカル変数
- 小文字または「_」で始まる。
- 宣言された変数スコープのみアクセスできる。変数スコープとは、ファイル内、クラス定義、モジュール定義、メソッド定義、ブロック内のこと。例えば、以下のように入れ子になっても、3つのvarは異なる値を持つ。
var = 1 # ファイル内のvar class Foo var = 2 # クラス定義内のvar def meth var = 3 # メソッド定義内のvar end end
インスタンス変数
- 「@」で始まる。
- メソッド定義内で宣言された場合には、同じインスタンス内のみでアクセスできる。クラス定義内で宣言された場合には、同じクラスのクラスメソッドまたはインスタンスメソッドでアクセスできる。サブクラスからはアクセスできない。
クラス変数
- 「$」で始まる。
- どこからでもアクセスできる。
定数