Hi all, here is a novice's question: I am wondering how to equip a class with a unary operator. Defining a method "-" like this class Something # ... def - # some code end # ... end I have to call "-" by writing somethingelse = something.- Is there a possibility to write this in prefix notation? somethingelse = -something Thanks in advance, best, Stephan
on 2008-10-06 01:32
on 2008-10-06 01:36
stephan.zimmer wrote: > Hi all, > > here is a novice's question: I am wondering how to equip a class with > a unary operator. Defining a method "-" like this The method name for unary - is -@, and the method name for unary + is +@.
on 2008-10-06 21:01
stephan.zimmer wrote: > end > Thanks in advance, best, > > Stephan Hi Stephan, This shows binary and unary operator definitions. Hope it helps. class Sam attr_accessor :me def initialize(me='This is a default: ') @me = me end "Binary Operator" def + (arg) self.me + arg.to_s end "Unary operator" def -@ self.me.reverse end end x = Sam.new('Test ') p x + 'Test' p -x Cheers, Steve