Apa yang terjadi pada saya saat memprogram di 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));
}
Tapi kemudian saya memikirkan kemungkinan "konversi tipe otomatis" yang hanya menggunakan fungsi konversi yang saya tentukan fooFrom
setiap kali string diteruskan di mana objek Foo dikecualikan.
Penelusuran membawa saya ke laman wikipedia tentang konversi jenis dengan contoh Eiffel ini:
class STRING_8
…
create
make_from_cil
…
convert
make_from_cil ({SYSTEM_STRING})
to_cil: {SYSTEM_STRING}
…
Metode setelah convert
dipanggil secara otomatis jika STRING_8 digunakan sebagai SYSTEM_STRING dan sebaliknya. Entah bagaimana mengejutkan bagi saya, saya tidak dapat menemukan bahasa lain yang mendukung ini.
Jadi pertanyaan saya: apakah ada bahasa lain yang mendukung fitur ini? Jika tidak, apakah ada alasannya, karena menurut saya ini cukup berguna? Lebih lanjut saya pikir tidak akan sulit untuk mengimplementasikannya sebagai tambahan bahasa.