【问题标题】:Why this simple class method is not working为什么这个简单的类方法不起作用
【发布时间】:2019-05-01 02:54:32
【问题描述】:

我正在尝试理解 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】:

    原因

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

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

    mc myMethod:
    

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

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

    【讨论】:

    • 不要!没有人天生就知道 Smalltalk!
    猜你喜欢
    • 1970-01-01
    • 2010-12-08
    • 2011-10-25
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多