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

问题描述 投票:0回答:1

我试图理解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"是smalltalk中的一个对象。

显然我遗漏了一些非常基本的东西,但我无法弄明白。谢谢你的帮助。

smalltalk
1个回答
2
投票

之所以

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

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

mc myMethod:

仿佛没有任何争论。预期的表达应该是

mc myMethod: 55 "and now this should work!"
© www.soinside.com 2019 - 2024. All rights reserved.