単項演算子メモ
メモ。
Rubyには単項演算子が3つある。+と-と~だ。
ただし、これらは二項演算子と明確に区別されるので、オーバーライドするときには記号に@をつけて定義する。
class Fixnum def -@ -2 * self end end i = 5 puts -i #=> -10
ちなみに、左辺に値が存在しない場合はいつまでも単項演算子なので、
i = 5 puts --i #=> 5 puts ++i #=> 5 puts -------------------i #=> 5 puts +++++++++++++++++++i #=> 5 puts -+-+-+-+-+-+-+-+-+-i #=> 5
なんてこともできる。なんだこれ。
なんか既視感あったと思ったら、これだった。
参考:
http://docs.ruby-lang.org/ja/2.1.0/doc/spec=2fdef.html#operator
http://docs.ruby-lang.org/ja/2.1.0/doc/symref.html