Я не знаю всех языков программирования, но ясно, что обычно не поддерживается возможность перегрузки метода с учетом его возвращаемого типа (при условии, что его аргументы совпадают по числу и типу).
Я имею в виду что-то вроде этого:
int method1 (int num)
{
}
long method1 (int num)
{
}
Дело не в том, что это большая проблема для программирования, но в некоторых случаях я бы приветствовал это.
Очевидно, что у этих языков не было бы возможности поддерживать это без возможности различить, какой метод вызывается, но синтаксис для этого может быть таким простым, как что-то вроде [int] method1 (num) или [long] method1 (num) таким образом, компилятор будет знать, какой из них будет вызван.
Я не знаю, как работают компиляторы, но это не так сложно сделать, поэтому я удивляюсь, почему что-то подобное обычно не реализуется.
По каким причинам подобное не поддерживается?
Foo
иBar
.