Ruby运算符的重载
直接上代码
class Point
attr_accessor :x, :y
def initialize(x=0, y=0)
@x, @y = x, y
end
def inspect
"(#{x}, #{y})"
end
def +(other)
self.class.new(x + other.x, y + other.y)
end
def -(other)
self.class.new(x - other.x, y - other.y)
end
def -@
self.class.new(-x, -y)
end
end
p0 = Point.new(3, 6)
p1 = Point.new(1, 2)
p -p0