Réflexion sur les balises de champ Struct à l'aide du package Go Reflect
Lorsque l'on traite des structures dans Go, il est souvent nécessaire de récupérer les balises personnalisées associées avec leurs champs. Pour ce faire, il est possible d'exploiter le package Reflection.
Accès aux balises de champ avec Reflection
Pour récupérer les valeurs de balise pour un champ spécifique, vous pouvez utiliser ce qui suit approche :
field, ok := reflect.TypeOf(user).Elem().FieldByName("name")
tag := string(field.Tag)
Exemple de code
Considérez la structure suivante :
type User struct { name string `json:name` age int }
Pour obtenir le Valeur de la balise "json" pour le champ de nom, vous utiliserez le code suivant :
user := &User{"John Doe", 20} field, ok := reflect.TypeOf(user).Elem().FieldByName("name") if ok { tag := string(field.Tag) fmt.Println(tag) // Output: json:"name" }
Remarque : Si vous avez affaire à un pointeur vers une structure (comme indiqué dans le exemple), n'oubliez pas d'utiliser Elem pour accéder à la structure sous-jacente.
Avantages de l'utilisation Reflection
Bien qu'il soit possible d'accéder manuellement aux balises de champ en itérant sur les champs de la structure, l'utilisation de la réflexion offre plusieurs avantages :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!