Maison >développement back-end >Golang >Go Reflection peut-il dériver un type à partir de son nom de chaîne ?
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!