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

Types 有没有办法记录Smalltalk上每个消息参数的类型?(如Objective-C),types,smalltalk,Types,Smalltalk,Objective-C是一种类似Smalltalk的语言,但它是一种弱的动态类型语言。我可以选择在适当的位置记录每个消息参数的类型 它作为一种文档很重要(至少对我来说)。如果在Smalltalk上可以在方法符号上进行可选的类型标记,那对我来说应该很好 我不关心编译器的LINT检查。我希望能有一个功能,用常规语法在源代码中记录参数类型。常规语法或预处理器。请告诉我任何事情。不 标准的闲聊中没有这样的东西。通常,人们选择的参数名称也会提示其类型,如: move:anDisplacementInteg

Objective-C是一种类似Smalltalk的语言,但它是一种弱的动态类型语言。我可以选择在适当的位置记录每个消息参数的类型

它作为一种文档很重要(至少对我来说)。如果在Smalltalk上可以在方法符号上进行可选的类型标记,那对我来说应该很好

我不关心编译器的LINT检查。我希望能有一个功能,用常规语法在源代码中记录参数类型。常规语法或预处理器。请告诉我任何事情。

标准的闲聊中没有这样的东西。通常,人们选择的参数名称也会提示其类型,如:

move:anDisplacementInteger

标准的闲聊中没有这样的东西。通常,人们选择的参数名称也会提示其类型,如:


move:anDisplacementInteger

除了Davorin通过注释或显示类型的参数名进行文档记录的观点外,还可以扩展
编译器来支持类型注释

显示Foote等人如何扩展
编译器
以支持Smalltalk中的多种方法,并使用注释方法的技术:

ComponentPart>>
    add: aVisualComponent <BorderWrapper>
    borderedIn: aLayoutObject
组件部分>>
地址:aVisualComponent
borderedIn:aLayoutObject

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

除了Davorin通过注释或显示类型的参数名称进行文档记录的观点外,还可以扩展
编译器来支持类型注释

显示Foote等人如何扩展
编译器
以支持Smalltalk中的多种方法,并使用注释方法的技术:

ComponentPart>>
    add: aVisualComponent <BorderWrapper>
    borderedIn: aLayoutObject
组件部分>>
地址:aVisualComponent
borderedIn:aLayoutObject

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

您可能对允许同一对象执行Smalltalk、Objective-C和Objective-C++中的方法感兴趣


8月底将在爱丁堡的会议上对此进行演示。

您可能会对允许相同对象在Smalltalk、Objective-C和Objective-C++中执行方法的感兴趣


8月底将在爱丁堡的会议上对此进行演示。

我想补充一点,指定类型不利于Smalltalk:当您需要一个对象时,您不需要类型,而是需要一个响应一组消息的对象。这对于文档来说不是最好的,但是如果你的代码与传入参数的对象的实现分离,它会非常好地工作。我要补充的是,指定类型不利于Smalltalk:当你需要一个对象时,你不需要一个类型,而是要一个响应一组消息的对象。对于文档来说,它不是最好的,但是如果您的代码与传入参数的对象的实现解耦,那么它会非常好地工作。