Storing and Retrieving Point
raymondasselin at sympatico.ca
raymondasselin at sympatico.ca
Sat Sep 29 04:13:39 UTC 2001
"Richard A. O'Keefe" <ok at atlas.otago.ac.nz> wrote:
> raymondasselin at sympatico.ca wrote:
> > >pt _ Point new.
> > >pt _ 25 at 125.
>
> -There is lots of examples in Smalltalk which suggest something like
> Morph new, or Foo new, so for me this was not linked to the use of
> declaring the type of a variable.
> -I know that when you try to define new for a Class you defined, Squeak
> answer a caution 'new is used in the existing class system......' I
> usually ignore it and go forward.
>
> Your remark is intriguing to me...did this means that it's not a good
> way to go to define a 'new' as a 'builder' Class method in Squeak ?
> I'm a little bit 'confus' because before your note I was pretty sure
> that pt_ Point new. was the way to go !!!
>
> John's point was that in
> "1" pt _ Point new.
> "2" pt _ 25 at 125.
> the first step is superfluous. In optimising compiler terms, the value
> it constructs is "dead", it can never be used. The code that creates a
> new Point has no side effects, so it doesn't accomplish anything useful
> to create a new point and then throw it away. The second step does not
> modify the Point created in line "1", it constructs a whole new Point &
> just rebinds the variable pt.
>
> #new is indeed the usual selector for creating new objects.
> It's not the only one. In this case,
>
> "3" pt _ Point x: 25 y: 125.
>
> would have had the same effect as step "2".
>
> There is actually a problem with using Point new. We normally think of
> a Point as an object having some kind of number for an x coordinate and
> some kind of number for a y coordinate (and possibly other stuff it is
> belongs to a subclass of Point), but
> "1" pt _ Point new
> returns a new point such that pt x is nil and pt y is nil. Another way
> to come up with a suitable point would be
>
> "4" pt _ Point new x: 25; y: 125.
> or
> "1'" pt _ Point new.
> "2'" pt x: 25; y: 125.
Hi Richard thank for your reply. The point for me is now so clear
that I'm feeling stupid to didn't perceive it sooner. 25 at 125 create a
point, it is not only an assignation of values to x and y part of a
point.
Raymond
More information about the Squeak-dev
mailing list
|