On Thu, 08 Feb 2007 22:58:32 -0800, Klaus D. Witzel <[EMAIL PROTECTED]> wrote:

Sure. Evaluate "Object halt; new" with doIt and then in the debugger, in the DoIt method line push the buttons "Through" then "Into".

Aha.

Huh.

Why doesn't this:

^ self basicNew initialize

cause a DNU? Object doesn't have an "initialize" method.

But yes we care :) The default initializer is Object>>#initialize, an empty method with is executed at primitive speed (it just returns self). Before that, #basicNew (the primitive) has already initialized the new instance with all nil's (or zeros, depending on the class' format spec). From the ~ 2887 classes in my Squeak-dev image, only some 928 implement initialize (even less when subtracting all the class side implementors).

So yes, it's quite common behavior to let the user set something actually useful.

I wasn't clear. I'm accustomed to creating "reasonable defaults" for instances. In a lot of cases, this has struck me as dumb, since there are no reasonable defaults. I thought I saw the same thing going on in Squeak but that doesn't seem to be the case.
_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners

Reply via email to