すべてのプログラミング言語について知っているわけではありませんが、通常、戻り値の型(引数の数と型が同じであると想定)を考慮してメソッドをオーバーロードする可能性がサポートされていないことは明らかです。
私はこのようなものを意味します:
int method1 (int num)
{
}
long method1 (int num)
{
}
プログラミングにとって大きな問題ではありませんが、場合によっては歓迎することもありました。
明らかに、どのメソッドが呼び出されているかを区別する方法なしにそれらの言語がそれをサポートする方法はありませんが、その構文は[int] method1(num)または[long] method1(num)のような単純なものにすることができますこれにより、コンパイラーは、どちらが呼び出されるかを認識します。
コンパイラがどのように機能するかはわかりませんが、それほど難しくはないように思われるので、なぜそのようなものが通常は実装されないのでしょうか。
そのようなものがサポートされない理由はどれですか?
Foo
と)を使用する方がよいでしょうBar
。