我正在研究技术图纸(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
dup
clone
不要做我的事,但是:
def copy; Marshal.load(Marshal.dump(self)); end
做。
为什么普通 Ruby 中不存在这样的基本功能?请不要告诉我我可以反转add
and add!
,让add
做这项工作,然后add!
调用它。