[Newbies] Re: How to empty a collection?
Klaus D. Witzel
klaus.witzel at cobss.com
Tue Feb 19 15:40:34 UTC 2008
On Tue, 19 Feb 2008 16:06:50 +0100, cdrick wrote:
...
> I forgot that in my first attemp (and I knew that !)...
>
> col := #(1 2 3) asOrderedCollection.
> col removeAll: col.
> ^col returns an OrderedCollection(2)
>
> col removeAll: col copy is ok.
>
> So, following Bert suggestion, would it be possible to change removeAll:
> from...
>
> removeAll: aCollection
> aCollection do: [:each | self remove: each].
> ^ aCollection
> to
>
> removeAll: aCollection
> aCollection copy do: [:each | self remove: each].
> ^ aCollection
> or
>
> removeAll: aCollection
> aCollection == self
> ifTrue: [aCollection copy do: [:each | self remove: each]]
> ifFalse: [aCollection do: [:each | self remove: each]].
> ^ aCollection
>
> or again
> removeAll: aCollection
> aCollection == self
> ifTrue: [self removeAll: aCollection copy]
> ifFalse: [aCollection do: [:each | self remove: each]].
>
> Or maybe, if aCollection == self, a warning could be raised ?
>
> What do you think ?
Thumbs down, I do not want anybody copy a collection behind my back
(however small or large it is) just because remove* has nothing to do with
copy.
> Cédrick
More information about the Beginners
mailing list