Maison > développement back-end > Golang > le corps du texte

Comment déterminer le type d'une valeur dans Go sans instance ?

Susan Sarandon
Libérer: 2024-10-30 18:14:31
original
800 Les gens l'ont consulté

How to Determine the Type of a Value in Go Without an Instance?

TypeOf sans instance et passage du résultat à une fonction

Il est possible en Go d'obtenir un descripteur de type sans instance. En utilisant la fonction reflex.TypeOf(), vous pouvez accéder à la représentation Type d'un pointeur vers une valeur nulle.

Exemples

<code class="go">t := reflect.TypeOf((*int)(nil)).Elem()
fmt.Println(t) // Output: int

t = reflect.TypeOf((*http.Request)(nil)).Elem()
fmt.Println(t) // Output: http.Request

t = reflect.TypeOf((*os.File)(nil)).Elem()
fmt.Println(t) // Output: os.File</code>
Copier après la connexion

Stockage de types dans des constantes

Pour commodité, vous pouvez définir des constantes globales pour représenter différents types, éliminant ainsi le besoin de créer des variables de réflexion.Type :

<code class="go">type TypeDesc int

const (
    TypeInt TypeDesc = iota
    TypeHTTPRequest
    TypeOSFile
)</code>
Copier après la connexion

Utilisation dans les commutateurs

Vous pouvez ensuite utiliser ces constantes dans les instructions switch pour déterminer le type d'une valeur :

<code class="go">func printType(t TypeDesc) {
    switch t {
    case TypeInt:
        fmt.Println("Type: int")
    case TypeHTTPRequest:
        fmt.Println("Type: http.Request")
    case TypeOSFile:
        fmt.Println("Type: os.File")
    }
}</code>
Copier après la connexion

Avantages de l'utilisation de constantes

L'utilisation de constantes pour la représentation de type offre plusieurs avantages :

  • Simplicité et facilité d'utilisation
  • Efficacité améliorée par rapport à la création de variables Reflect.Type
  • Clarté et maintenabilité de votre code

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!