I am writing an RPC service in Go. I don't know how to convert a struct method to a Handler
func.
What I tried:
type TestService struct{}
func (TestService) Foo(a int) error {
return nil
}
type Handle func(a int) error
func TestHandle(t *testing.T) {
ts := new(TestService)
val := reflect.ValueOf(ts)
// typ := reflect.TypeOf(ts)
// fmt.Println(val.Method(0).Interface())
// fmt.Println(val.Method(0).Type().ConvertibleTo(reflect.TypeOf(new(Handle))))
switch reflect.Indirect(val).Method(0).Interface().(type) {
case Handle:
fmt.Println(" okokok " )
default:
fmt.Println(reflect.Indirect(val).Method(0).Type())
}
}
But it fails. How should I do it?
Aucun commentaire:
Enregistrer un commentaire