問題:
如何存取特定標籤值的使用 Go反射的結構體欄位package?
答案:
在結構體上進行反射時,不可能透過提供特定欄位的值來直接檢索其標籤值。這是因為反射包無法自動將值與原始struct關聯起來。
要取得標籤值,需要取得與該欄位關聯的reflect.StructField。具體操作方法如下:
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) // ... }
在此範例中,我們透過使用 FieldByName 取得「name」欄位的reflect.StructField(欄位)。然後我們將欄位傳遞給 getStructTag 函數以檢索標籤值。
以上是如何使用Go的反射包存取結構體欄位標籤值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!