Maison >développement back-end >Golang >Go Reflection peut-il dériver un type à partir de son nom de chaîne ?

Go Reflection peut-il dériver un type à partir de son nom de chaîne ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-23 13:02:11868parcourir

Can Go Reflection Derive a Type from its String Name?

Réflexion : Obtention de la représentation d'un type à partir de son nom

Question :

En Go, est-il possible de dériver le Type représentation d'un type de données à partir de son nom en utilisant réflexion ?

Réponse :

La réponse à cette question dépend du contexte dans lequel elle est posée.

Au Runtime :

Si le nom du type est disponible sous forme de chaîne au moment de l'exécution, ce n'est pas possible pour obtenir sa représentation Type en utilisant la réflexion. En effet, les types qui ne sont pas directement référencés peuvent ne pas être inclus dans le binaire exécutable final.

Au moment du « codage » :

Cependant, si le nom du type est connu lors de la phase de codage ou de génération de code, il est possible d'obtenir sa représentation Type sans créer de variable de celui-ci type.

Cela peut être réalisé en obtenant le pointeur Type du type, en créant une valeur de pointeur nulle tapée, puis en utilisant Type.Elem() pour accéder au type de base du pointeur. Le descripteur de type résultant sera identique à celui obtenu en créant et en réfléchissant sur une variable de ce type.

Exemple :

t := reflect.TypeOf((*YourType)(nil)).Elem()

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