semantics of #clone?
Lex Spoon
lex at cc.gatech.edu
Mon Jun 23 23:16:53 UTC 2003
Yoshiki.Ohshima at acm.org wrote:
> Josh,
>
> > What are the semantics of #clone? Object>>clone has no method
> > comment. How is it different from the intended meaning of
> > #shallowCopy?
>
> I guess some other people have better ansser, but for me, #clone is
> ensured to be more primitive and faster. Since it doesn't nil-out or
> zero-out the newly created object, it is faster for objects like
> Bitmap. In the other words, #clone is thin layer on the primitive,
> while #shallowCopy has more flexibility to do something different.
>
> # I somehow am feeling that #clone is added later, in 2.x days.
>
I have thought of it as slightly more primitive, too. A shallow copy of
an OrderedCollection, for example, might copy slightly more deeply than
a #clone would (hmm, and that's what it does).
Right now, Squeak's clone does do as much as nil out the variables --
it's in fact the same primitive as the default shallowCopy. This seems
like a good idea for Squeak, where safety is a higher priority than
speed.
Lex
More information about the Squeak-dev
mailing list
|