如何通过反射拿到方法的参数

fwhez · · 2975 次点击
vType:=reflect.TypeOf(add) numIn:=vType.NumIn() //返回func类型的参数个数,如果不是函数,将会panic addIn:=make([]reflect.Type,numIn) for i:=0;i<numIn;i++{ addIn[i]=vType.In(i) //返回func类型的第i个参数的类型,如非函数或者i不在[0, NumIn())内将会panic fmt.Println(addIn[i]) }
#1
更多评论
<a href="/user/fwhez" title="@fwhez">@fwhez</a> ``` vType:=reflect.TypeOf(add) numIn:=vType.NumIn() //返回func类型的参数个数,如果不是函数,将会panic addIn:=make([]reflect.Type,numIn) for i:=0;i&lt;numIn;i++{ addIn[i]=vType.In(i) //返回func类型的第i个参数的类型,如非函数或者i不在[0, NumIn())内将会panic fmt.Println(addIn[i]) } ```
#2
要查看完整的构建(注册)与运行调用,可以参考 go 标准库的 rpc 包
#3