好奇心から、型に算術を設定して新しい型を作成できる言語はありますか?何かのようなもの:
interface A {
void a();
void b();
}
interface B {
void b();
void c();
}
interface C = A & B; // has b()
interface D = A | B; // has a(), b() and c()
interface E = (A & B) ^ B; // has c()
一部の言語ではこれらのアイデアを表現できることを知っています(つまり、JavaはList<Comparable & Serializable>
インターフェースの結合に必要です)が、タイプ演算をサポートする言語について聞いたことがありません。ありがとう!
CanWriteAndCompare extends Serializable, Comparable {}
)であり、これを一般化する方法を考えていました。
A
またはをとることができるメソッドがあるケースに今日遭遇しましたB
。メソッドでは、A
またはを受け取ることができるポリモーフィックメソッドを呼び出しているB
ため、実装は同じですが、2つの異なる型をとる必要があるため、2つの実装が必要です。できればもっと簡単でしょうmyMethod(A | B aOrB)
。
Or
操作は多重継承によってエミュレートできます。