我如何可以通过包名称列表中的所有结构和方法,或结构的名称来创建一个结构实例,如
```go
package test
type User struct {
Name string
}
func getStructNameByPackageName(packageName string) []string{
...
}
func createStructInstance(structName string) interface{}{
...
}
```
调用函数getstructnamebypackagename(“test”)我们将得到结果:['User']
调用函数createstructinstance(“test.User”)我们将得到结果:一个用户实例
我在网上浏览了很多网页,但是大多数人说不能这么做。如果可以的话,请告诉我,非常感谢。
<a href="/user/jarlyyn" title="@jarlyyn">@jarlyyn</a> package级变量那个init()您的意思是不是我每增加一个struct就是init里面手动进行填入,例如:
var structNames map[string][]string
func init(){
structNames["test"] = append(structNames["test"],"User")
structNames["test"] = append(structNames["test"],"Animal")
structNames["test1"] = append(structNames["test"],"Ball")
structNames["test1"] = append(structNames["test"],"Chair")
}
之后获取的时候直接读取,每增加必须在init里面全部手动声明,或者把他写到一个配置文件里面yml,或者ini之后init方法读出来
#8
更多评论