Memahami Semakan Pelaksanaan Antara Muka dalam Go
In Go, menentukan sama ada nilai melaksanakan antara muka boleh menjadi tugas yang mengelirukan untuk pemula. Artikel ini bertujuan untuk menjelaskan proses dengan contoh untuk diikuti.
Mengapa Menggunakan Pemeriksaan Pelaksanaan Antara Muka?
Biasanya, pengkompil secara automatik melakukan semakan pelaksanaan antara muka berdasarkan nilai yang diketahui taip. Walau bagaimanapun, apabila bekerja dengan nilai jenis yang tidak diketahui, adalah perlu untuk menyemak secara manual sama ada antara muka dilaksanakan.
Contoh Analisis Kod
Pertimbangkan contoh berikut:
type Somether interface { Method() bool } type MyType string func (mt MyType) Method2() bool { return true } func main() { val := MyType("hello") _, ok := val.(Somether) var _ Iface = (*MyType)(nil) }
Kaedah 1: Penegasan dengan jenis suis
Dalam percubaan pertama, suis jenis (_(Somether)) digunakan untuk menyemak sama ada nilai val melaksanakan antara muka Somether. Walau bagaimanapun, pendekatan ini memerlukan suis jenis, yang mungkin tidak optimum.
Kaedah 2: Tugasan untuk mengosongkan antara muka
Kaedah kedua menggunakan antara muka kosong:
var _ Iface = (*MyType)(nil)
Teknik ini memberikan penunjuk jenis MyType kepada pembolehubah antara muka kosong. Jika MyType melaksanakan Somether, kod itu akan disusun tanpa ralat. Walau bagaimanapun, kerana ia tidak, ralat masa kompilasi akan dilemparkan menunjukkan bahawa MyType tidak melaksanakan Somether.
Kesederhanaan Pemeriksaan Pelaksanaan Antara Muka
Adalah penting untuk ambil perhatian bahawa semakan ini digunakan terutamanya apabila jenis nilai tidak diketahui. Apabila jenisnya diketahui, pengkompil secara automatik mengesahkan pelaksanaan antara muka.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Semak Pelaksanaan Antara Muka dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!