変数とは
変数とは何か
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 |