Merak dışında, yeni türler oluşturmak için türlerde aritmetik ayarlamanıza izin veren diller var mı? Gibi bir şey:
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()
Bazı dillerde bu fikirlerin ifade edilebileceğini biliyorum (yani Java, List<Comparable & Serializable>
arayüzlerin birleşmesi için var), ancak tip aritmetiği destekleyen bir dil duymadım. Teşekkürler!
CanWriteAndCompare extends Serializable, Comparable {}
) bir arayüz ve bunu nasıl genelleştireceğimizi düşünüyordum.
A
veya bir yöntem alabileceğim bir durumla karşılaştım B
. Metodda, bir A
veya a alabilen bir polimorfik metod çağırıyorum B
, bu yüzden uygulamalar aynı, ancak iki farklı tip almak zorunda olduğum için iki uygulamaya ihtiyacım var. Yapabilseydim bu daha kolay olurdu myMethod(A | B aOrB)
.
Or
operasyon çoklu miras ile taklit edilebilir.