変数とは

変数とは何か

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

例えば、

a = 1

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

では、

b = a

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

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

計算した場合

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

a = 1
b = 2
c = a + b

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

自己代入演算子

a = 1
a += 1

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

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

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

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です!