如何从头开始制作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.
现在我打开一个工作区并尝试打印出结果:
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.
但我得到的结果如下:
我错过了什么?
回答
尝试替换以下内容:
obj1 x:3 y:4.
有了这个:
obj1 x:3; y:4.
基本上,您正在发送消息,#x:y:但您没有具有该名称的方法。相反,您有一个方法#x:和另一个方法#y:,因此您需要对同一个对象进行两次单独的调用(使用级联运算符 ( #;)完成)。