Rubyの学習ノート--変数
[Ruby]
変数の種別(宣言無しで、名前で決まる)
- ローカル変数
- 小文字または"_"で始まる
- 使う前に必ず代入する必要がある
- まだ代入が行われていない小文字で始まる識別子はメソッド扱い!
- スコープ:
- メソッド定義(defからendまで)
- クラス定義(classからendまで)
- モジュール定義(moduleからendまで)
- ブロック(メソッド呼び出しの直後のdoからend、あるいは{ ... }の中)、この場合だけ!外側のローカル変数にアクセスできる!
- ★ローカル変数のオキテ
「メソッドの先頭でローカル変数の初期化を行う」ことと「ブロック内で初出のローカル変数はブロックから出ると無効になる」
つ・か・う・な (まつもとゆきひろ様より)
- インスタンス変数("@"で始まる)
- 定数
- 大文字で始まる
- 代入による定義が必要
- メソッド定義の中では定数に代入できない
- サブクラスや内側クラスで再び同じ名前の定数を定義すると、内側の定義による値が最優先!
- スコープ
- トップレベル(クラス・モジュール定義の外側)で定義された定数はプログラム全体
- クラス・モジュール定義の中で定義された定数はそのクラス定義の範囲内と継承やインクルードによって定数定義を引き継いでいるクラス・モジュール内