Tôi không biết về tất cả các ngôn ngữ lập trình, nhưng rõ ràng rằng thường thì khả năng quá tải một phương thức có tính đến kiểu trả về của nó (giả sử các đối số của nó là cùng một số và loại) không được hỗ trợ.
Ý tôi là như thế này:
int method1 (int num)
{
}
long method1 (int num)
{
}
Nó không phải là một vấn đề lớn đối với lập trình nhưng trong một số trường hợp, tôi sẽ hoan nghênh nó.
Rõ ràng sẽ không có cách nào để các ngôn ngữ đó hỗ trợ mà không có cách phân biệt phương thức nào đang được gọi, nhưng cú pháp cho phương thức đó có thể đơn giản như một cái gì đó như [int] method1 (num) hoặc [long] method1 (num) bằng cách đó, trình biên dịch sẽ biết cái nào sẽ được gọi.
Tôi không biết làm thế nào trình biên dịch hoạt động nhưng điều đó dường như không khó thực hiện, vì vậy tôi tự hỏi tại sao điều đó thường không được thực hiện.
Đó là những lý do tại sao một cái gì đó như thế không được hỗ trợ?
Foo
vàBar
.