[Newbies] Should all methods return a value?
Yoshiki Ohshima
yoshiki at squeakland.org
Tue May 9 07:17:29 UTC 2006
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
More information about the Beginners
mailing list