相关疑难解决方法(0)

如何在Golang中返回动态类型结构?

我正在使用Golang Revel进行一些网络项目,到目前为止我确实喜欢了12个项目.在所有这些中,由于返回类型,我有很多代码冗余.看看这两个功能:

func (c Helper) Brands() []*models.Brand{

    //do some select on rethinkdb and populate correct model
    var brands []*models.Brand
    rows.All(&brands)

    return brands

}

func (c Helper) BlogPosts() []*models.Post{

    //do some select on rethinkdb and populate correct model
    var posts []*models.Post
    rows.All(&posts)

    return posts

}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它们都返回相同类型的数据(类型结构).我的想法就是像这样传递字符串var:

func (c Helper) ReturnModels(modelName string) []*interface{} {

    //do rethinkdb select with modelName and return []*interface{} for modelName
}
Run Code Online (Sandbox Code Playgroud)

像这样我可以只有一个帮助器来返回数据类型,而不是为不同的模型反复做同样的事情,但是相同的数据类型.

我的问题是:

  1. 这有可能吗?
  2. 如果是,你可以指向正确的文档
  3. 如果没有,我会更乐意回复你的答案:)

go revel

18
推荐指数
1
解决办法
2万
查看次数

标签 统计

go ×1

revel ×1