有没有办法在Smalltalk上记下每个消息参数的类型? (如Objective-C)

时间:2011-06-13 04:38:29

标签: types smalltalk

Objective-C是一种像Smalltalk这样的语言,但它是一种弱动态类型的语言。我可以选择在原地记录每个消息参数的类型。

作为一种文档(至少对我来说)很重要。如果在Smalltalk上可以使用方法签名上的可选类型标记,那对我来说应该很棒。

我不关心编译器LINT检查。我希望只使用常规语法在源代码上注明参数类型的功能。常规语法或预处理器。请让我知道任何事情。

3 个答案:

答案 0 :(得分:2)

不,

标准Smalltalk中没有这样的东西。很多时候人们会选择参数名称,它也会提示它的类型如下:

move:anDisplacementInteger

答案 1 :(得分:2)

除了Davorin通过注释或类型显示参数名称进行记录之外,总是有可能将Compiler扩展为支持类型注释。

Efficient Multimethods in a Single Dispatch Language展示了Foote等人如何扩展Compiler以支持Smalltalk中的多方法,并使用注释方法的技术:

ComponentPart>>
    add: aVisualComponent <BorderWrapper>
    borderedIn: aLayoutObject

特别是,该论文的技术不会在整个图像中强制执行注释,因此您只能注释您的方法。

答案 2 :(得分:0)

您可能对Etoiles project感兴趣,它允许同一个对象在Smalltalk,Objective-C和Objective-C ++中执行方法。

将于8月底在爱丁堡的19th International Smalltalk Conference进行演示。