Rumah > Artikel > pembangunan bahagian belakang > Bolehkah Anda Dapatkan semula `reflect.Type` dalam Go Tanpa Menggerakkan Jenis atau Menggunakan Namanya sebagai Rentetan?
Mendapatkan semula Reflect.Type daripada Type atau Namanya dalam Go
Soalan ini meneroka sama ada mungkin untuk mendapatkan reflect.Jenis a jenis tersuai, seperti "t1" dalam contoh yang diberikan, tanpa membuat seketika atau menggunakan namanya sebagai rentetan.
Mengenai bahagian pertama soalan, ya, ia boleh dicapai dengan menggunakan nol ditaip . Coretan kod berikut menunjukkan pendekatan ini:
var v1 reflect.Type = reflect.TypeOf((*t1)(nil)).Elem()
Dalam contoh ini, kami memanfaatkan penuding nol ditaip untuk mendapatkan jenis masa jalan "t1."
Bagi bahagian kedua, mendapatkan semula pantulan.Taip terus daripada nama jenis tidak disokong dalam Go. Masa jalanan tidak mengekalkan peta semua jenis dalam perduaan semasa, yang diperlukan untuk mencapainya.
Walaupun boleh difikirkan untuk mencipta pakej pendaftaran jenis dan mendaftar jenis untuk carian mengikut rentetan, ini tidak dapat dielakkan. menjadi tidak lengkap. Selain itu, jenis tanpa nama memperkenalkan komplikasi kerana nama mereka mungkin tidak unik.
Walaupun Go secara teorinya mungkin menawarkan fungsi untuk mendapatkan semula jenis berdasarkan namanya, tidak mungkin ciri ini akan dilaksanakan dalam masa terdekat.
Atas ialah kandungan terperinci Bolehkah Anda Dapatkan semula `reflect.Type` dalam Go Tanpa Menggerakkan Jenis atau Menggunakan Namanya sebagai Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!