Rubyの変数と定数

変数とは

オブジェクトに付ける名札

変数の分類

・ローカル変数  :先頭がアルファベット小文字か _ で始まる
・グローバル変数 :先頭が $ で始まる
・インスタンス変数:先頭が @ で始まる
・クラス変数   :先頭が @@ で始まる

ローカル変数の有効範囲

・クラス定義
・モジュール定義
・メソッド定義
・ファイル

ブロック変数の有効範囲

Ruby1.8
ブロック変数は名前空間をローカル変数と共有するので、意図せず値が上書きされることがある

Ruby1.9
ブロック変数はブロック内のみで有効

参照渡し

= は、参照渡し

s1 = "a"
s2 = s1
s1.upcase!
print s2  #=> A

値渡し

値渡しにするには、dupメソッドを使用

s1 = "a"
s2 = s1.dup
s1.upcase!
print s2  #=> a

定数とは

・変数と同様、オブジェクトに付ける名札
・変数とは違い、一度代入したら終わり
・先頭がアルファベット大文字で始まる