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