把反映.要反射的值

  • 本文关键字:反射的 reflection go
  • 更新时间 :
  • 英文 :


我有以下内容:

func NewMethodDescriptor(typ interface{}) *MethodDescriptor {
    reflectedMethod := reflect.ValueOf(typ)
    methodType := reflectedMethod.Type
    paramCount := methodType.NumIn() - 1
    ...

但当我尝试:

NewMethodDescriptor(func(){})

我得到这个编译时错误:

methodType.NumIn undefined (type func() reflect.Type has no field or method NumIn)

更具体地说:

  • reflectedMethod.Type返回函数func (v Value) Type() Type
  • reflectedMethod.Type()返回结果,表示v的类型。

你可以在"用反射包分析任何函数的乐趣"中看到一个更完整的例子。

func FuncAnalyse(m interface{}) {
    //Reflection type of the underlying data of the interface
    x := reflect.TypeOf(m)
    numIn := x.NumIn()   //Count inbound parameters
    numOut := x.NumOut() //Count outbounding parameters
    fmt.Println("Method:", x.String())
    fmt.Println("Variadic:", x.IsVariadic()) // Used (<type> ...) ?
    fmt.Println("Package:", x.PkgPath())
}

相关内容

  • 没有找到相关文章

最新更新