[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