Bagaimana Saya Boleh Menentukan Kewujudan Kaedah dalam Go?

DDD
Lepaskan: 2024-11-12 16:29:01
asal
287 orang telah melayarinya

How Can I Determine Method Existence in Go?

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)
Salin selepas log masuk

Sebagai alternatif:

i, ok = myInstance.(interface{ F() })
Salin selepas log masuk

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")
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan