Frage:
Wie kann ich auf die Tag-Werte eines bestimmten Felds zugreifen? Strukturfeld mithilfe der Go-Reflexion Paket?
Antwort:
Beim Nachdenken über eine Struktur ist es nicht möglich, die Tag-Werte eines bestimmten Felds direkt abzurufen, indem man seinen Wert bereitstellt. Dies liegt daran, dass das Reflection-Paket den Wert nicht automatisch der ursprünglichen Struktur zuordnen kann.
Um die Tag-Werte zu erhalten, müssen Sie das mit dem Feld verknüpfte „reflect.StructField“ abrufen. So können Sie es machen:
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) // ... }
In diesem Beispiel erhalten wir das Reflect.StructField (Feld) für das Feld „Name“, indem wir FieldByName verwenden. Anschließend übergeben wir das Feld an die getStructTag-Funktion, um den Tag-Wert abzurufen.
Das obige ist der detaillierte Inhalt vonWie greife ich mit dem Reflection-Paket von Go auf Strukturfeld-Tag-Werte zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!