如何从头开始制作 Squeak 课程?

Lit*_*tle 2 smalltalk squeak

我想在 Squeak 中制作一个简单的程序来计算几个点之间的距离,但我不想使用已经定义的类 Point。到目前为止,我有以下几点:

在此处输入图片说明

x 和 y 的 getter 和 setter 方法已自动生成:

x ^ x

x: anObject x := anObject.

我编程的距离方法如下: 在此处输入图片说明

distance:aPoint
    "comment stating purpose of message"

    |dx dy |
    dx:=aPoint x - x.
    dy:=aPoint y - y.
    ^ (dx*dx+dy*dy) sqrt.
Run Code Online (Sandbox Code Playgroud)

现在我打开一个工作区并尝试打印出结果:

obj1:=PointS new.
obj1 x:3 y:4.
obj2:=PointS new.
obj2 x:5 y:6.
d:=obj1 distance obj2
UIManager default inform: 'Converted amount: ',d.
Run Code Online (Sandbox Code Playgroud)

但我得到的结果如下:

在此处输入图片说明

我错过了什么?

Jam*_*ter 5

尝试替换以下内容:

obj1 x:3 y:4.
Run Code Online (Sandbox Code Playgroud)

有了这个:

obj1 x:3; y:4.
Run Code Online (Sandbox Code Playgroud)

基本上,您正在发送消息,#x:y:但您没有具有该名称的方法。相反,您有一个方法#x:和另一个方法#y:,因此您需要对同一个对象进行两次单独的调用(使用级联运算符 ( #;)完成)。