Maison > développement back-end > Golang > Comment puis-je obtenir les informations de type d'une variable dans Go sans créer d'instance ?

Comment puis-je obtenir les informations de type d'une variable dans Go sans créer d'instance ?

Susan Sarandon
Libérer: 2024-11-01 05:34:02
original
847 Les gens l'ont consulté

How can I get the type information of a variable in Go without creating an instance?

TypeOf sans instance et passer le résultat à une fonction

En Go, il est possible d'obtenir les informations de type d'une variable sans créer d'instance de ce type . Cela peut être fait en utilisant la fonction réflexion.TypeOf.

Utilisation de TypeOf sans instance

La fonction réflexion.TypeOf prend un pointeur vers un type comme argument et renvoie une valeur réflexion.Type. Le pointeur vers le type peut être obtenu à l'aide de l'opérateur * suivi du nom du type. Par exemple :

<code class="go">t := reflect.TypeOf((*int)(nil))</code>
Copier après la connexion

Cette ligne de code crée un pointeur vers le type int et l'assigne à la variable t.

Obtenir le type de base

Si vous avez un pointeur vers un type qui est un pointeur vers un autre type, vous pouvez utiliser la méthode Elem de la valeur Reflect.Type pour obtenir le type de base. Par exemple :

<code class="go">t = reflect.TypeOf((*http.Request)(nil)).Elem()</code>
Copier après la connexion

Cette ligne de code crée un pointeur vers le type http.Request et l'affecte à la variable t. La méthode Elem est ensuite appelée sur la valeur Reflect.Type pour obtenir le type de base, qui est http.Request.

Utilisation du résultat dans une fonction

Une fois que vous avez une valeur Reflect.Type , vous pouvez le passer en argument à une fonction. Par exemple, la fonction suivante prend une valeur Reflect.Type comme argument et imprime le nom du type :

<code class="go">func printType(t reflect.Type) {
    fmt.Println(t.Name())
}</code>
Copier après la connexion

Cette fonction peut être utilisée comme suit :

<code class="go">t := reflect.TypeOf((*int)(nil))
printType(t)</code>
Copier après la connexion

Cette fonction Une ligne de code imprimera la chaîne "int".

Création de constantes pour les types

Dans certains cas, il peut être plus efficace de créer des constantes pour les types au lieu d'utiliser Reflect.TypeOf. Par exemple, le code suivant crée une constante pour le type int :

<code class="go">const TypeInt = reflect.TypeOf((*int)(nil))</code>
Copier après la connexion

Cette constante peut ensuite être utilisée à la place de l'expression Reflect.TypeOf :

<code class="go">printType(TypeInt)</code>
Copier après la connexion

Ce code va imprime la chaîne "int".

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