为什么这个简单的类方法不起作用

时间:2019-05-01 02:54:32

标签: smalltalk

我试图理解smalltalk,并尝试使用gnu-smalltalk遵循简单的代码:

Object subclass: Myclass[
    myMethod: val [val printNl]
]

mc := Myclass new.
mc myMethod: "55".

但是,它不起作用并给出以下错误:

$gst simpleclass.st 
simpleclass.st:6: expected object

我认为"55"是小谈话中的对象。

很明显,我缺少一些非常基本的东西,但是我无法弄清楚。感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

原因

mc := Myclass new.
mc myMethod: "55".

行不通很简单:在Smalltalk中,双引号字符串是注释。因此,对于编译器,您的表达式等效于:

mc myMethod:

好像没有任何争论。预期的表达式应该是

mc myMethod: 55 "and now this should work!"