読者です 読者をやめる 読者になる 読者になる

hotoolong's blog

Railsやvimや気になったことを綴ってます

+=はメソッドじゃない

演算周りの処理をまとめていた時にsendで呼び出せると 綺麗にリファクタリングできるかなとおもい調べていると

1.send(:'+',3)
=> 4
1.send(:'+=',3)
NoMethodError: undefined method `+=' for 1:Fixnum

NoMethodErrorになってしまったのですが、Google先生に聞いいてみてもなかなかみつけにくかったのですが、

Rubyのリファレンスの演算子式の自己代入に記載がありました。

演算子式 (Ruby 2.0.0)

&&, ||以外は

  式1 = 式1 op 式2 

に置き換わるそうです。 基本的なところなんですね。。