我正在研究技术图纸(svg/ruby)的解决方案。我想操作矩形,并add!在这个类中有一个方法:
class Rect
def add!(delta)
@x1+=delta
... # and so on
self
end
end
我还需要一个add返回 aRect但不操作的方法self:
def add(delta)
r=self.dup/clone/"copy" # <-- not realy the 3 and no quotes, just in text here
r.add! delta
end
dupclone不要做我的事,但是:
def copy; Marshal.load(Marshal.dump(self)); end
做。
为什么普通 Ruby 中不存在这样的基本功能?请不要告诉我我可以反转addand add!,让add做这项工作,然后add!调用它。