変数と定数
ローカル変数
小文字または’_‘で始まる識別子はローカル変数またはメソッド呼び出しです。
ローカル変数のスコープ
- ブロック
- メソッド定義
- クラス・モジュール定義
- トップレベル
インスタンス変数
@
で始まる変数はインスタンス変数で、特定のオブジェクトに所属している。初期化されていないインスタンス変数を参照した場合はnil
が帰る。
疑似変数
- self : 現在のメソッドの実行主体
- nil : NilClassの唯一のインスタンス
- true : TrueClassの唯一のインスタンス
- false : FalseClass唯一のインスタンス。nilとfalseは儀を表す
- FILE : 現在のソースファイル名。フルパスとは限らないため、フルパスが必要な場合は、
File.expand_path(__FILE__)
とする必要がある - LINE : 現在のソース・ファイ中の行番号
- ENCODING : 現在のソースファイルのスクリプトエンコーディング
疑似変数の値を変更することは出来ない。疑似変数へ代入すると文法エラーになる。
定数
アルファベットの大文字で始まる識別子は定数。定義されていない定数にアクセスすると、NameError
となる。
FOO = "foo".freeze