Maison > développement back-end > Golang > Comment puis-je obtenir une représentation de type Go à partir de son nom au moment de la compilation ?

Comment puis-je obtenir une représentation de type Go à partir de son nom au moment de la compilation ?

Susan Sarandon
Libérer: 2024-12-29 19:11:11
original
1003 Les gens l'ont consulté

How Can I Get a Go Type Representation from Its Name at Compile Time?

Obtenir une représentation de type à partir du nom dans Go avec réflexion

Question :

Comment peut-on obtenir une représentation Type à partir de son nom en utilisant la réflexion de Go bibliothèques ?

Réponse :

La compréhension de cette question dépend de son interprétation. Il existe essentiellement deux perspectives :

Inaccessibilité à l'exécution :

Si le nom du type est fourni sous forme de chaîne au moment de l'exécution, il ne peut pas être converti en représentation de type. Les types qui ne sont pas explicitement référencés peuvent ne pas être inclus dans le binaire exécutable final, ce qui les rend inaccessibles au moment de l'exécution.

Accessibilité temporelle du « codage » :

Cependant, pendant codage (création ou génération de code source), il est possible d'y parvenir sans créer de variable du type spécifié et sans appeler Reflect.TypeOf().

Obtention du type intégré :

On peut utiliser une valeur de pointeur nulle typée et parcourir à partir du descripteur Reflect.Type du pointeur vers le type de base ou d'élément du pointeur en utilisant Type.Elem().

Exemple :

t := reflect.TypeOf((*YourType)(nil)).Elem()
Copier après la connexion

Cette approche donne un descripteur de Type (t) identique au descripteur (t2) obtenu en créant une variable du type et utilisant Reflect.TypeOf() :

var x YourType
t2 := reflect.TypeOf(x)

fmt.Println(t, t2)
fmt.Println(t == t2)
Copier après la connexion

Sortie :

main.YourType main.YourType
true
Copier après la connexion

Conclusion :

Lors de la récupération du type la représentation n'est pas réalisable au moment de l'exécution en raison de contraintes de compilation, elle est possible pendant le temps de codage en accédant au type intégré à l'aide du pointeur nil typé approche.

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