Ruby で単項演算子を . 演算子で呼び出す
Ruby では単項演算子 !
や +
などをメソッドとして再定義する事ができます。
class X # ! はそのまま ! という名前のメソッドとして定義する def ! "X#!" end # + は二項演算子と区別するために +@ と書く def +@ "X#+@" end end x = X.new p !x # => "X#!" p +x # => "X#+@"
また、 !
や +@
はメソッドなので .
演算子で呼び出すこともできます。
# . 演算子で呼び出す p x.! # => "X#!" p x.+@ # => "X#+@"
単好演算子 +
の場合は .+@
っていう名前で呼び出せるんですね。知らなかった。