有没有一种方法可以从reflect.Func中提取包路径?

时间:2019-11-05 20:32:06

标签: go reflection go-reflect

在函数上使用reflect.TypeOf时,结果对象具有空的PkgPath()。 显示此内容的完整示例如下:

// file 1, package foo:
func New() *Foo {
  return nil
}

// file 2, package main, main func:
typ := reflect.TypeOf(foo.New)
fmt.Printf("typ.PkgPath() is '%s'\n", typ.PkgPath())

我是否正确理解没有必要从函数中获取pkg路径,并且在给定reflect.Type的情况下也无法学习它吗? 如果不是,是否还有某种方法可以提取它?

编辑1:我要解决的问题是编写一个代码生成器,该代码生成器将使用我传递给该代码生成器的功能来创建代码。代码生成器是在实用程序的主要函数中调用的库,该函数应以某种方式采用我在某些程序包中定义的功能,并创建以某种方式使用这些功能的代码。

0 个答案:

没有答案