Stef,
I would expect to see another implementation of ifEmptyOrNil on UndefinedObject that returns true.
I've seen it used productively for defensive coding in frameworks, where you may get nil instead of an empty collection passed to you.
-david
On Sun, Oct 5, 2008 at 8:28 PM, Bill Schwab
<BSchwab@anest.ufl.edu> wrote:
Stef,
I suspect your mood is appropriate. Most likely, it masks a failure to
initialize something to a collection. Unless there is a performance
argument (e.g. many are created, few are actually used, or something
like that??), then it probably should go.
Bill
Wilhelm K. Schwab, Ph.D.
University of Florida
Department of Anesthesiology
PO Box 100254
Gainesville, FL 32610-0254
Email: bschwab@anest.ufl.edu
Tel: (352) 273-6785
FAX: (352) 392-7029
>>> stephane.ducasse@inria.fr 10/05/08 5:31 AM >>>
Hi
I would like to have your take on that one:
isEmpty
"Answer whether the receiver contains any elements."
^self size = 0
Why do we need ifEmptyOrNil:
isEmptyOrNil
"Answer whether the receiver contains any elements, or
is nil.
Useful in numerous situations where one
wishes the same reaction to an empty collection or to
nil"
^ self isEmpty
why can we use isEmpty: or ifEmpty: aBlock
ifEmpty: aBlock
"Evaluate the block if I'm empty"
^ self isEmpty ifTrue: aBlock
Then from an implementation point of view ifEmptyOrNil: is bogus since
it never returns nil (or should not and is also ill-specified).
I checked ANSI and this is really a boolean.
I'm the mood to deprecate this method.
Stef
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project