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>
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>
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!