変数とは

変数とは何か

Rubyにおける変数とはインスタンスに割り当てる名前です。

例えば、

a = 1

この場合、1というインスタンスにaという名前を割り当てています。

では、

b = a

とした場合は、 aのインスタンスがbに割り当てられるので、aとbは同じ1というインスタンスを指しています。

a === b #=> true
文 インスタンス 変数
a = 1 1 a
b = a 1 a, b

計算した場合

計算した場合はどうなるかというと、

a = 1
b = 2
c = a + b

aとbがあり、a + bにより計算された3にcという変数が割り当てられます。

自己代入演算子

a = 1
a += 1

の場合、まず1にaが割り当てられます。

次に、aに1加算された値である2にaが割り当てられます。

つまり、1というインスタンスが2に変わるのではなく、 計算された2にaを再度割り当てているということです。

a = 1
b = a
a += 1
a === b #=> false
文 インスタンス 変数
a = 1 1 a
b = a 1 a, b
a += 1 2 a
  1 b

正当なCSSです!