Rumah > pembangunan bahagian belakang > Golang > Bagaimana Saya Mendapatkan Refleksi.Jenis Antara Muka Tidak Dimulakan dalam Go?

Bagaimana Saya Mendapatkan Refleksi.Jenis Antara Muka Tidak Dimulakan dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-12-19 11:09:14
asal
281 orang telah melayarinya

How Do I Get the reflect.Type of an Uninitialized Interface in Go?

Menentukan pantulan.Jenis Antara Muka

Untuk memastikan sama ada sesuatu jenis melaksanakan antara muka menggunakan pakej pantulan, adalah perlu untuk menyediakan a reflect.Type to reflect.Type.Implements(). Walau bagaimanapun, mendapatkan jenis ini kadangkala kelihatan membingungkan, terutamanya untuk antara muka yang tidak dimulakan seperti ralat.

Antara Muka Ralat Tidak Dimulakan

Percubaan untuk menentukan jenis ralat yang tidak dimulakan (antara muka ) menggunakan reflect.TypeOf(err).Kind() akan mengakibatkan panik apabila Kind() adalah dipanggil.

Penyelesaian

Untuk mendapatkan jenis antara muka seperti ralat dengan betul, anda perlu mencipta penuding ke antara muka dahulu dan kemudian menggunakan Elem() pada jenis yang terhasil. Ini boleh dicapai dalam dua cara:

Kaedah Verbose:

var err error
t := reflect.TypeOf(&err).Elem()
Salin selepas log masuk

Kaedah Satu Baris:

t := reflect.TypeOf((*error)(nil)).Elem()
Salin selepas log masuk

Dengan mengikut pendekatan ini, anda boleh mendapatkan semula pantulan dengan berkesan.Jenis antara muka, tanpa mengira permulaannya negeri.

Atas ialah kandungan terperinci Bagaimana Saya Mendapatkan Refleksi.Jenis Antara Muka Tidak Dimulakan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan