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 :
// 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)
}
Pour réussir les assertions de type dans ma fonction, utilisez la déclaration de fonction suivante :
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
}
Cette approche implique d'utiliser un échantillon du type que vous souhaitez faire correspondre, en garantissant que les types sont identiques pour une assertion de type réussie.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3