Dalam bahasa Go, anda boleh mendapatkan maklumat jenis melalui refleksi; anda hanya perlu memanggil fungsi TypeOf() bagi pakej reflect. Kaedah: 1. Gunakan fungsi "reflect.TypeOf()" untuk mendapatkan objek jenis pembolehubah yang ditentukan; 2. Gunakan Nama() dan Jenis() untuk mendapatkan maklumat jenis objek jenis .Nama()" dan "jenis objek .Jenis()".
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Dalam bahasa Go, maklumat taip boleh diperoleh melalui refleksi.
Dalam bahasa Go, dengan memanggil fungsi reflect.TypeOf, kita boleh mencipta nilai reflect.Type daripada nilai mana-mana jenis bukan antara muka. Nilai reflect.Type mewakili jenis nilai bukan antara muka ini. Melalui nilai ini, kita boleh mendapatkan banyak maklumat tentang jenis bukan antara muka ini. Sudah tentu, kita juga boleh menghantar nilai antara muka kepada panggilan fungsi reflect.TypeOf, tetapi panggilan ini akan mengembalikan nilai reflect.Type yang mewakili jenis dinamik nilai antara muka.
Malah, jenis satu-satunya parameter bagi reflect.Fungsi TypeOf ialah antara muka{} dan fungsi reflect.TypeOf akan sentiasa mengembalikan nilai reflect.Type yang mewakili jenis dinamik parameter antara muka unik ini nilai.
Jadi bagaimana untuk mendapatkan nilai reflect.Type yang mewakili jenis antara muka tertentu? Kita mesti mencapai matlamat ini melalui beberapa cara tidak langsung yang akan diperkenalkan di bawah.
Jenis mencerminkan.Jenis ialah jenis antara muka, yang menentukan beberapa kaedah. Melalui kaedah ini, kita boleh memerhati pelbagai maklumat jenis Go yang diwakili oleh nilai reflect.Type. Sesetengah kaedah ini digunakan untuk semua jenis dan sesetengahnya hanya digunakan untuk satu atau beberapa jenis. Memanggil kaedah dengan refleksi yang tidak sesuai. Nilai pemilik jenis akan menyebabkan panik semasa masa jalan.
Gunakan fungsi reflect.TypeOf() untuk mendapatkan objek jenis (reflect.Type) bagi sebarang nilai Atur cara boleh mengakses maklumat jenis sebarang nilai melalui objek jenis. Mari kita fahami proses mendapatkan objek jenis melalui contoh:
package main import ( "fmt" "reflect" ) func main() { var a int typeOfA := reflect.TypeOf(a) fmt.Println(typeOfA.Name(), typeOfA.Kind()) }
Keluaran kod adalah seperti berikut:
Penerangan kod adalah seperti berikut:
Baris 10 mentakrifkan pembolehubah jenis int.
Dalam baris 12, jenis objek typeOfA bagi pembolehubah a diperoleh melalui reflect.TypeOf(), dan jenisnya adalah reflect.Type().
Dalam baris 14, melalui fungsi ahli objek jenis typeOfA, anda boleh mendapatkan nama jenis pembolehubah typeOfA int dan jenis (Jenis) int.
Pengetahuan lanjutan: Jenis dan Jenis refleksi
Apabila menggunakan refleksi, anda perlu terlebih dahulu memahami jenis (Jenis) dan perbezaan antara baik hati. Dalam pengaturcaraan, jenis yang paling biasa digunakan ialah jenis, tetapi dalam refleksi, apabila pelbagai jenis yang besar perlu dibezakan, jenis (Jenis) digunakan. Sebagai contoh, apabila anda perlu menilai secara seragam penunjuk dalam jenis, adalah lebih mudah untuk menggunakan maklumat jenis (Jenis).
Atas ialah kandungan terperinci Cara mendapatkan maklumat taip dalam bahasa go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!