这个问题更笼统,并扩展到类型化的非 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 试图回答这个问题有点简短。
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
Scala的复合类型与您所描述的非常相似。复合类型允许在声明变量/参数时枚举类型
val myVal: Type1 with Type2 with TypeN = new Type1 with Type2 with TypeN
添加回答
举报
0/150
提交
取消