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 パスを取得する必要はなく、funcs に Reflect.Type だけを指定するとそれを学習する方法がないことを正しく理解していますか? そうでない場合-何らかの方法でそれを抽出する方法はまだありますか?
編集 1: 私が解決しようとしている問題は、コード ジェネレーターに渡す関数で何かを実行するコードを作成するコード ジェネレーターを作成することです。コードジェネレーターは、ユーティリティのメイン関数で呼び出されるライブラリであり、一部のパッケージで定義した関数を何らかの方法で取得し、それらの関数を何らかの方法で使用するコードを作成する必要があります。