为什么这个简单的 class 方法不起作用
Why this simple class method is not working
我正在尝试理解 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中的一个对象。
显然我遗漏了一些非常基本的东西,但我无法弄明白。感谢您的帮助。
原因
mc := Myclass new.
mc myMethod: "55".
不起作用很简单:在 Smalltalk 中,双引号字符串是注释。因此,对于编译器,您的表达式等效于:
mc myMethod:
好像没有任何争论。预期的表达应该是
mc myMethod: 55 "and now this should work!"
我正在尝试理解 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中的一个对象。
显然我遗漏了一些非常基本的东西,但我无法弄明白。感谢您的帮助。
原因
mc := Myclass new.
mc myMethod: "55".
不起作用很简单:在 Smalltalk 中,双引号字符串是注释。因此,对于编译器,您的表达式等效于:
mc myMethod:
好像没有任何争论。预期的表达应该是
mc myMethod: 55 "and now this should work!"