Soalan:
Bagaimana saya boleh mengakses nilai teg bagi sesuatu medan struct menggunakan pantulan Go pakej?
Jawapan:
Semasa merenung struct, tidak mungkin untuk mendapatkan secara langsung nilai teg medan tertentu dengan memberikan nilainya. Ini kerana pakej pantulan tidak boleh mengaitkan nilai secara automatik dengan struct asal.
Untuk mendapatkan nilai teg, anda perlu mendapatkan reflect.StructField yang dikaitkan dengan medan. Begini cara anda boleh melakukannya:
import "reflect" type User struct { name string `json:name-field` age int } func getStructTag(field reflect.StructField) string { return string(field.Tag) } // ... user := &User{"John Doe The Fourth", 20} field, ok := reflect.TypeOf(user).Elem().FieldByName("name") if ok { tag := getStructTag(field) // ... }
Dalam contoh ini, kami memperoleh reflect.StructField (medan) untuk medan "nama" dengan menggunakan FieldByName. Kami kemudian menghantar medan ke fungsi getStructTag untuk mendapatkan semula nilai teg.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Nilai Tag Medan Struktur Menggunakan Pakej Refleksi Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!