我如何可以通过包名称列表中的所有结构和方法,或结构的名称来创建一个结构实例,如
```go
package test
type User struct {
Name string
}
func getStructNameByPackageName(packageName string) []string{
...
}
func createStructInstance(structName string) interface{}{
...
}
```
调用函数getstructnamebypackagename(“test”)我们将得到结果:['User']
调用函数createstructinstance(“test.User”)我们将得到结果:一个用户实例
我在网上浏览了很多网页,但是大多数人说不能这么做。如果可以的话,请告诉我,非常感谢。
还有理论上,要做一个 func getStructNameByPackageName(packageName string) []string
也是很容易的事。
你需要的是做一个父级的包,做一个package级的变量,比如 Structs map[string][]string
getStructNameByPackageName 写在父包里面。
子包在func init() 里相关的信息和创建函数注册到父包里
#6
更多评论