Kewujudan Kaedah Menyoal dalam Go
Dalam Go, tidak seperti Objective-C, tiada mekanisme eksplisit untuk menyemak sama ada objek mempunyai objek tertentu kaedah. Walau bagaimanapun, terdapat beberapa pendekatan untuk menangani keperluan ini.
Semakan Kaedah Mudah
Anda boleh menentukan antara muka dengan hanya kaedah yang anda minati dan melaksanakan jenis dakwaan terhadap anda objek:
i, ok := myInstance.(InterfaceImplementingThatOneMethodIcareAbout)
Sebagai alternatif:
i, ok = myInstance.(interface{ F() })
Nilai sebenar untuk ok menunjukkan bahawa kaedah itu wujud.
Pendekatan Lanjutan : Pakej Reflect
Pakej reflect menyediakan cara yang lebih komprehensif untuk introspeksi jenis:
st := reflect.TypeOf(myInstance) m, ok := st.MethodByName("F")
Jika ok adalah palsu, kaedah itu tidak wujud. Jika tidak, anda boleh menggunakan kaedah menggunakan m.F().
Atas ialah kandungan terperinci Bagaimana Saya Boleh Menentukan Kewujudan Kaedah dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!