Login  Register

Re: an elegant way to return a result

Posted by Peter Uhnak on Jun 30, 2015; 11:05am
URL: https://forum.world.st/an-elegant-way-to-return-a-result-tp4834837p4834841.html

No need to have both if you are returning the receiver.

^ something aMsg ifNotNil: [ aNotherResult ]

For example try printing these two lines
1 ifNotNil: [ true ]. "true"
nil ifNotNil: [ true ]. "nil"

If you are interested in the implementation details I highly recommend to look at the implementation.
ProtoObject>>ifNotNil: aBlock
and
UndefinedObject>>ifNotNil: aBlock.

Peter

On Tue, Jun 30, 2015 at 1:21 PM, abdelghani ALIDRA <[hidden email]> wrote:
Hi guys,

what is the best way to express the following :
return (something aMsg) if it is not nil, return somethingElse elsewhere

I could stil write:

something aMsg
    ifNil:[^ something aMsg]
    ifNotNil:[^aNotherResult]

but it sounds a little bit weird

Regards.

Abdelghani