PerlerのRuby日記

Rubyとか

剰余算の自己代入の優先順位

よく変数に数を足し込むときには、+=を使う。
これと同じように掛け算、割り算も*=、/=が使えるけれど、この場合の四則演算の優先順位が気になったのでやってみたメモ。

a = 120
a /= 12 + 3
puts a #=> 8

# 120 / (12 + 3) = 8
# 120 / 12 + 3 = 13

b = 12
b *= 5 + 3
puts b #=> 96

# 12 * (5 + 3) = 96
# 12 * 5 + 3 = 63

よって、右辺が計算された結果が先に格納された値と演算しているということがわかった。