[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