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