Maison > développement back-end > Golang > Comment accéder aux valeurs des balises de champ Struct à l'aide du package de réflexion de Go ?

Comment accéder aux valeurs des balises de champ Struct à l'aide du package de réflexion de Go ?

Barbara Streisand
Libérer: 2024-12-11 17:35:16
original
937 Les gens l'ont consulté

How to Access Struct Field Tag Values Using Go's Reflection Package?

Accès aux valeurs des balises de champ avec le package de réflexion de Go

Question :

Comment puis-je accéder aux valeurs de balise d'un objet spécifique champ struct utilisant la réflexion Go package?

Réponse :

Lors de la réflexion sur une structure, il n'est pas possible de récupérer directement les valeurs de balise d'un champ spécifique en fournissant sa valeur. En effet, le package de réflexion ne peut pas automatiquement associer la valeur à la structure d'origine.

Pour obtenir les valeurs des balises, vous devez obtenir le reflet.StructField associé au champ. Voici comment procéder :

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)
    // ...
}
Copier après la connexion

Dans cet exemple, nous obtenons le reflet.StructField (champ) pour le champ "name" en utilisant FieldByName. Nous passons ensuite le champ à la fonction getStructTag pour récupérer la valeur de la balise.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal