我正在用 Go 编写一个 RPC 服务。我不知道如何将结构方法转换为Handler函数。
我尝试了什么:
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())
}
}
但它失败了。我应该怎么做?
明月笑刀无情
相关分类