A recent convert to Ruby here. The following question isn’t really practical; it’s more of a question on how the internals of Ruby works. Is it possible to override the standard addition operator to accept multiple inputs? I’m assuming that the answer is no, given that the addition operator is a standard one, but i wanted to make sure i wasn’t missing something.
Below is the code I wrote up quick to verify my thoughts. Note, it’s completely trivial/contrived.
class Point
attr_accessor :x, :y
def initialize(x,y)
@x, @y = x, y
end
def +(x,y)
@x += x
@y += y
end
def to_s
"(#{@x}, #{@y})"
end
end
pt1 = Point.new(0,0)
pt1 + (1,1) # syntax error, unexpected ',', expecting ')'
You should not mutate the object when implementing
+operator. Instead return a new Point Object: