是否有一种语言在变量声明时支持隐式复合类型?

这个问题更笼统,并扩展到类型化的非 OOP 语言,但只是为了让代码证明我的意图,我将坚持使用标准的花括号语言,如 C#。


我见过的 OOP 语言支持两种复合接口


interface ISyntaxNode : ISyntax, INode {}

ISyntaxNode node;

// Do stuff with node

还有一些复合类的概念


class SyntaxNode {

    // Members are public/private/partially exposed/whatever

    ISyntax code;

    INode node;

}

SyntaxNode node;

// Do stuff with node

但是在这两种情况下,都需要在使用之前明确定义复合类型以及它的行为方式。是否有任何语言支持某种隐式复合类型的概念?例如


ISyntax INode node;

这在具有隐式接口概念的语言中会更有用/更灵活,以便您以后可以定义类似的东西ISyntaxNode并且仍然node是其中之一,而无需对代码进行任何更改,但我很好奇这是否是一种模式在野外见过。我的 google-foo 试图回答这个问题有点简短。


阿波罗的战车
浏览 135回答 1
1回答

慕田峪4524236

Scala的复合类型与您所描述的非常相似。复合类型允许在声明变量/参数时枚举类型val myVal: Type1 with Type2 with TypeN = new Type1 with Type2 with TypeN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java