No conozco todos los lenguajes de programación, pero está claro que generalmente no se admite la posibilidad de sobrecargar un método teniendo en cuenta su tipo de retorno (suponiendo que sus argumentos sean del mismo número y tipo).
Me refiero a algo como esto:
int method1 (int num)
{
}
long method1 (int num)
{
}
No es que sea un gran problema para la programación, pero en algunas ocasiones me hubiera gustado.
Obviamente, no habría forma de que esos lenguajes admitieran eso sin una forma de diferenciar qué método se llama, pero la sintaxis para eso puede ser tan simple como algo como [int] method1 (num) o [long] method1 (num) de esa manera el compilador sabría cuál sería el que se llamaría.
No sé cómo funcionan los compiladores, pero eso no parece ser tan difícil de hacer, así que me pregunto por qué algo así no suele implementarse.
¿Cuáles son las razones por las que algo así no es compatible?
Foo
yBar
.