Maison > développement back-end > Golang > Comment transmettre des variables de type aux fonctions pour les assertions de type dans Go ?

Comment transmettre des variables de type aux fonctions pour les assertions de type dans Go ?

DDD
Libérer: 2024-10-30 22:24:30
original
292 Les gens l'ont consulté

How to Pass Type Variables to Functions for Type Assertions in Go?

Passer des variables de type aux fonctions pour les assertions de type

Vous souhaitez effectuer des assertions de type en passant un type dans une fonction. Essentiellement, votre objectif est d'atteindre les objectifs suivants :

<code class="go">// Note that this is pseudocode, because Type isn't valid here
func myfunction(mystring string, mytype Type) {
    ...

    someInterface := translate(mystring)
    object, ok := someInterface.(mytype)

    ...  // Do other stuff
}

func main() {
    // Desired function call
    myfunction("hello world", map[string]string)
}</code>
Copier après la connexion

Pour réussir à exécuter des assertions de type dans myfunction, utilisez la déclaration de fonction suivante :

<code class="go">package main

import "reflect"

func myfunction(v interface{}, mytype interface{}) bool {
    return reflect.TypeOf(v) == reflect.TypeOf(mytype)
}

func main() {
    assertNoMatch := myfunction("hello world", map[string]string{})
    fmt.Printf("%+v\n", assertNoMatch) // false

    assertMatch := myfunction("hello world", "stringSample")
    fmt.Printf("%+v\n", assertMatch) // true
}</code>
Copier après la connexion

Cette approche implique l'utilisation d'un échantillon du type vous souhaitez faire correspondre, en vous assurant que les types sont identiques pour une assertion de type réussie.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal