Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mengesahkan Pelaksanaan Antara Muka dalam Go pada Masa Kompilasi?
Menggunakan Penegasan Jenis untuk Mengesahkan Pelaksanaan Antara Muka
Apabila bekerja dengan antara muka, adalah penting untuk memahami cara menyemak sama ada nilai melaksanakan antara muka tertentu pada masa larian. Ini amat berguna dalam senario di mana jenis nilai tidak diketahui atau dinamik.
Untuk mencapai ini, anda boleh menggunakan sintaks penegasan jenis yang diperkenalkan dalam Go. Dalam contoh anda, anda cuba menggunakan sintaks _ dengan betul, ok := val.(Somether) untuk menyemak sama ada nilai MyType val melaksanakan antara muka Somether. Walau bagaimanapun, pendekatan ini hanya berfungsi jika nilai sudah daripada jenis antara muka.
Untuk menyemak jenis tertentu, anda boleh menggunakan sintaks berikut:
var _ Somether = (*MyType)(nil)
Dalam ungkapan ini, _ ialah pengecam kosong yang digunakan untuk mengabaikan pembolehubah yang dinamakan dan memfokuskan pada penegasan jenis itu sendiri. Ungkapan *MyType mencipta penunjuk kepada nilai MyType dan (nil) memberikan nilai nol kepada penunjuk ini. Ini dengan berkesan menyemak sama ada *MyType melaksanakan antara muka Somether. Jika ia berlaku, kod itu disusun tanpa ralat; jika tidak, ia menghasilkan ralat masa kompilasi yang menunjukkan bahawa MyType kekurangan pelaksanaan kaedah Kaedah yang diperlukan.
Teknik ini membolehkan anda mengesahkan secara eksplisit sama ada jenis tertentu melaksanakan antara muka tertentu tanpa memerlukan refleksi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesahkan Pelaksanaan Antara Muka dalam Go pada Masa Kompilasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!