[Newbies] Should all methods return a value?
Charles D Hixson
charleshixsn at earthlink.net
Tue May 9 17:29:24 UTC 2006
Yoshiki Ohshima wrote:
> Charles,
>
>
>> Todd Blanchard wrote:
>>
>>> The rule is, if you don't return a value, then self is returned.
>>> There's no such thing as a void message like in C++ or Java.
>>>
>>> Tell me what you want to do and I'll see if I can scare up some examples.
>>>
>>> On May 8, 2006, at 10:16 PM, Charles D Hixson wrote:
>>>
>>>
>>>> I know that in some languages this matters, and in others it doesn't.
>>>> ...
>>>>
>>> ...
>>>
>
> What Todd meant to say was: if you don't *explicitly* return a value
> with a '^' statement, the receiver (self) is returned. Basically, all
> message-sending return some values.
>
>
>> Returning self is fine. I just wanted to know what would happen, so I
>> could do things properly.
>> (Actually, right not the methods would execute Object
>> shouldBeImplemented, so they probably won't really return anything...but
>> I was trying to plan for the future.)
>>
>
> I don't know if the following is relevant what you do, but here is a
> little fun fact.
>
> Almost all errors and explicit runtime exceptions like
> #shouldNotImplemented are decorated break points. If you push the
> "Proceed" button in the pink window called notifier, the execution
> continues. Since Object>>shouldBeImplemented is implemented as:
> ---------
> shouldBeImplemented
> "Announce that this message should be implemented"
>
> self error: 'This message should be implemented'
> ---------
> without any explicit return, the receiver is returned and the
> execution continues. Try an expression like following, evaluate the
> expression and "proceed".
>
> ----------
> Transcript show: (3 shouldBeImplemented + 4) printString.
> ----------
>
> -- Yoshiki
Good. That is exactly the way I would want it to have been designed,
now that I think about it.
More information about the Beginners
mailing list