smalltalk方法调用参数

时间:2014-05-14 15:30:18

标签: smalltalk

我在smalltalk中编写了以下方法:

initializeWithStart: startWith step: theStep count: theCount

self initialize.
startNumber := startWith.
stepSize := theStep.
countUntil := theCount.

我只想在从工作区创建对象后调用此方法。所以我写道:

mySq := ArithmeticsS new.
mySq initializeWithStart: '2' step:'4' count:'10'.

为什么我会收到错误“MessageNotUnderstood:undefinedobject>> initializeWithStart:step:count:”?

2 个答案:

答案 0 :(得分:1)

我们不能在没有更多上下文的情况下肯定地说,但看起来你在类侧而不是实例端创建了新方法。

在工作区中,您选择将消息发送到实例。

要找出,评估(打印)

ArithmeticsS respondsTo: #initializeWithStart:step:count:

如果方法是在班级一侧,那将是真的。删除该方法并将其保存在实例端。

现在评估

ArithmeticsS new respondsTo: #initializeWithStart:step:count:

使用new,这将检查实例端的方法。 应该是真的。我根据您发布的信息猜测它是假的,这意味着您没有将方法保存在正确的位置。

检查您的方法Smalltalk的文档,以确认如何保存实例方法。

答案 1 :(得分:0)

您应该像这样实例化:

mySq := ArithmeticsS new initializeWithStart: 2 step:4 count:10.