Récupération de la représentation sous forme de chaîne d'un type dans Go
Considérez la définition de type suivante :
type ID uuid.UUID
Pour obtenir la représentation sous forme de chaîne du type par programme, une approche consiste à utiliser la fonction fmt.Sprintf("%T", ID{}). Cependant, cette méthode peut s'avérer inefficace et nécessite l'instanciation du type.
Une solution alternative réside dans le package Reflect. En obtenant une référence au pointeur du type, vous pouvez créer un pointeur « typé nul » sans allocation. Ce pointeur permet d'accéder au descripteur du type à l'aide de la méthode Type.Elem(), qui récupère le type de base ou d'élément du pointeur.
Par exemple :
t := reflect.TypeOf((*ID)(nil)).Elem() name := t.Name() fmt.Println(name)
Cette approche fournit plusieurs avantages :
Il est important de noter que Type.Name() peut renvoyer une chaîne vide pour les types sans nom. Si vous utilisez une déclaration de type avec le mot-clé type, vous obtiendrez un nom de type non vide.
En utilisant le package Reflect, vous pouvez obtenir la représentation sous forme de chaîne d'un type de manière flexible et efficace.
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!