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
Barbara Streisandoriginal
2024-12-11 17:35:161013parcourir

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)
    // ...
}

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!

Déclaration:
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