Vì tò mò, có ngôn ngữ nào cho phép bạn đặt số học trên các loại để tạo loại mới không? Cái gì đó như:
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()
Tôi biết rằng trong một số ngôn ngữ, những ý tưởng này có thể được thể hiện (nghĩa là Java List<Comparable & Serializable>
dành cho sự kết hợp các giao diện) nhưng tôi chưa bao giờ nghe thấy một ngôn ngữ hỗ trợ số học kiểu. Cảm ơn!
CanWriteAndCompare extends Serializable, Comparable {}
) và tôi đã nghĩ cách để khái quát hóa giao diện này.
A
hoặc một B
, với hai triển khai trông giống hệt nhau. Trong phương thức tôi đang gọi một phương thức đa hình có thể lấy một A
hoặc a B
, vì vậy các triển khai là như nhau, nhưng vì tôi phải thực hiện hai loại khác nhau nên tôi cần hai triển khai. Điều này sẽ dễ dàng hơn nếu tôi có thể làm myMethod(A | B aOrB)
.
Or
hoạt động có thể được mô phỏng bởi nhiều kế thừa.