I'm building a library where once methods are added to a struct we want them to be automatically called w/o using some sort of method list.
I want to build on the work here by calling all of the methods dumped that is linked here How to dump methods of structs in Golang?.
package main
import (
"fmt"
"reflect"
)
type Foo struct {
Prop string
}
func (f Foo) Bar(i int) {
fmt.Println("Called from Foo.Bar()")
}
func (f Foo) Baz(i int) {
fmt.Println("Called from Foo.Baz()")
}
func (f Foo) Floop(i int) {
fmt.Println("Called from Foo.Floop()")
}
func main() {
fooType := reflect.TypeOf(&Foo{})
fmt.Println("--- Calling methods ---")
for i := 0; i < fooType.NumMethod(); i++ {
method := fooType.Method(i)
method.Func.Call(nil)
}
}
Also seen here: https://play.golang.org/p/gNUsANjuPV0
This will always panic w/ a message for too few arguments to .Call(). I don't see where this differs structurally from the code here: https://play.golang.org/p/HB8yB91LRme.
Aucun commentaire:
Enregistrer un commentaire