我想了解自我语言。
我怀疑的是,无论是克隆自我语言深层克隆还是浅层克隆。 即,克隆只是克隆对象插槽或插槽内的对象是否被克隆。
答案 0 :(得分:3)
正如Tobias所说,copy
消息通常是浅层副本。
从语义上讲,自我中的copy
几乎意味着“给我一个安全/有用的副本”。对于许多物体来说,这只是一个浅层副本。
对象负责实现自己的copy
,方法是委托一个纯粹的浅层复制方法,例如traits clonable
中的实现,或者拥有自己的copy
插槽。
例如,变形通常通过为您提供可用副本而不是浅副本来响应copy
消息。此外,不应复制的对象通常会实现或委托给方法copy = (self)
,以便尝试复制只返回原始对象。
如果您需要严格的浅色副本,大多数可复制对象都会响应clone
,但应谨慎使用。在基础上是VM定义的原始方法_Clone
,它是一个浅层副本。
答案 1 :(得分:1)