Java でプログラミング中に起こったこと:
String str
// want to call something(), but signature does not match
something(Foo foo)
// but I have this conversion function
Foo fooFrom(String)
// Obviously I am about to create another method overload.. sigh
something(String s) {
something(fooFrom(s));
}
fooFrom
しかし、Foo オブジェクトが除外される場所に文字列が渡されるたびに、定義した変換関数を使用するだけの「自動型変換」の可能性を考えました。
検索の結果、次のEiffel の例を使用した型変換に関するウィキペディアのページにたどり着きました。
class STRING_8
…
create
make_from_cil
…
convert
make_from_cil ({SYSTEM_STRING})
to_cil: {SYSTEM_STRING}
…
以降のメソッドconvert
は、STRING_8 が SYSTEM_STRING として使用されている場合、またはその逆の場合に自動的に呼び出されます。これをサポートする他の言語を見つけることができなかったのは、なんとなく驚きでした。
私の質問: この機能をサポートする他の言語はありますか? そうでない場合、それは私にとって非常に便利だと思われるので、その理由はありますか? さらに、言語アドオンとして実装することも難しくないと思います。