Maison >développement back-end >Golang >Comment puis-je déterminer le type sous-jacent de « l'interface{} » de Go ?
Lorsque vous travaillez avec le type d'interface polyvalente{} de Go, il est essentiel de naviguer dans sa flexibilité inhérente. Pour utiliser efficacement l'interface{}, nous approfondissons vos questions intrigantes :
Type Switch to the Rescue :
switch v := w.(type) { case int: fmt.Println("Type: integer") case string: fmt.Println("Type: string") }
Utilisation de TypeName :
fmt.Println(reflect.TypeOf(w).Name())
Assertion de type avec TypeName :
typeName := reflect.TypeOf(w).Name() if typeName == "int" { value := w.(int) } else if typeName == "string" { value := w.(string) }
Dans votre exemple spécifique, vous pouvez obtenir le "vrai" type de w à l'aide d'un commutateur de type :
switch w := weirdFunc(5).(type) { case int: fmt.Println("w is an integer") case string: fmt.Println("w is a string") }
Vous pouvez également exploiter le package Reflect pour récupérer le nom du type lui-même :
typeName := reflect.TypeOf(w).Name() fmt.Println("w's type name:", typeName)
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!