Maison >développement back-end >Golang >Comment puis-je vider à la fois les propriétés et les méthodes d'une structure Go ?
Méthodes de dumping des structures dans Golang
Bien que le package "fmt" de Golang fournisse une méthode "Printf" pour vider les propriétés d'une structure, il existe un besoin de récupérer à la fois les propriétés et les méthodes d’une structure. Prenons l'exemple suivant :
type Foo struct { Prop string } func (f Foo)Bar() string { return f.Prop }
Pour vérifier l'existence de la méthode "Bar()" dans une instance initialisée de type "Foo", pensez à utiliser le package "reflect". Voici comment procéder :
fooType := reflect.TypeOf(&Foo{}) for i := 0; i < fooType.NumMethod(); i++ { method := fooType.Method(i) fmt.Println(method.Name) }
Si votre objectif est de déterminer si un type implémente un ensemble de méthodes spécifique, les interfaces et les assertions de type pourraient être plus pratiques. Un exemple :
func implementsBar(v interface{}) bool { type Barer interface { Bar() string } _, ok := v.(Barer) return ok }
Pour tester une instance de "Foo" pour la méthode "Bar()" :
fmt.Println("Foo implements the Bar method:", implementsBar(Foo{}))
Alternativement, pour affirmer explicitement qu'un type a certaines méthodes à temps de compilation :
var _ Barer = Foo{}
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!