Memahami Kekangan Jenis dalam Antara Muka Go
Antara muka Go ialah alatan berkuasa untuk mengabstrak jenis data dan mempromosikan penggunaan semula kod. Walau bagaimanapun, penggunaan antara muka dikekang oleh peraturan tertentu, salah satunya ialah larangan antara muka yang mengandungi elemen jenis.
Dalam coretan kod yang diberikan, ralat "antara muka mengandungi kekangan jenis: tidak boleh menggunakan antara muka Nombor dalam penukaran " timbul kerana sekatan ini. Antara muka Nombor, ditakrifkan sebagai jenis Antara muka Nombor { int | int64 | float64 }, mentakrifkan gabungan tiga jenis tertentu. Ini menjadikan Number sebagai antara muka bukan asas, bermakna ia tidak boleh digunakan sebagai jenis nilai atau pembolehubah.
Spesifikasi bahasa tidak membenarkan penggunaan antara muka bukan asas dalam penukaran jenis atau sebagai elemen jenis lain. Pembolehubah tidak boleh dimulakan sebagai []Nombor{Nombor(1), Nombor(2), Nombor(3), Nombor(4)} kerana Nombor tidak boleh digunakan untuk membina nilai baharu.
Untuk mengatasi pengehadan ini, anda boleh menggunakan jenis antara muka{}, yang boleh menyimpan nilai apa-apa jenis. Pembolehubah aa berjaya dicipta sebagai []antara muka{}{antara muka{}(1), antara muka{}(2), antara muka{}(3), 4} kerana elemen tidak dihadkan oleh jenis kekangan Nombor.
Sebagai alternatif, anda boleh mentakrifkan antara muka tanpa kekangan jenis, seperti NNumber, dan menggunakannya untuk membuat kepingan selamat jenis. Pembolehubah aaa dimulakan sebagai []Number{NNumber(1), NNumber(2), NNumber(3), 4} tanpa ralat kerana NNumber tidak mengandungi sekatan jenis.
Dengan memahami konsep asas dan antara muka bukan asas dan had yang mengelilinginya, anda boleh menggunakan antara muka Go dengan berkesan sambil mengelakkan potensi isu yang berkaitan dengan kekangan jenis.
Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Menggunakan Antara Muka Go dengan Kekangan Jenis dalam Penukaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!