Merefleksikan Jenis dalam Go
Memahami keupayaan dinamik jenis dalam Go adalah penting untuk banyak senario pengaturcaraan lanjutan. Soalan ini meneroka cara mendapatkan pantulan.Jenis jenis tersuai dalam pelbagai situasi.
Mendapatkan Jenis daripada Contoh Sedia Ada
Untuk mendapatkan pantulan.Jenis tersuai struct tanpa membuat instantiate, gunakan pendekatan berikut:
type t1 struct { i int; s string } var v1 reflect.Type = reflect.TypeOf((*t1)(nil)).Elem() fmt.Println(v1) // prints "main.t1"
Kaedah ini mengambil nilai nol yang ditaip bagi struct ((*t1)(nil)) dan menggunakan Elem() untuk mendapatkan jenis konkrit.
Walaupun secara teorinya mungkin untuk mengekalkan peta maklumat jenis dalam pakej yang berasingan, ia adalah bukan pendekatan yang disyorkan. Terdapat potensi isu dengan identiti jenis, keunikan dan keperluan untuk mendaftarkan semua jenis yang berkaitan secara manual.
KesimpulanDalam Go, mendapatkan refleksi.Jenis tersuai jenis memerlukan sama ada kejadian instantiated atau nilai nol ditaip. Walaupun tidak mungkin untuk mendapatkan jenis secara langsung daripada nama rentetan, kaedah tidak langsung boleh digunakan untuk mencapai fungsi yang serupa. Memahami teknik ini membolehkan pembangun bekerja dengan jenis dengan cara yang lebih dinamik dan reflektif.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan reflect.Jenis Jenis Tersuai dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!