【发布时间】:2016-02-26 16:51:09
【问题描述】:
我正在将 Golang Revel 用于一些 Web 项目,到目前为止,我确实喜欢其中的 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
}
如您所见,它们都返回相同类型的数据(结构类型)。 我的想法只是像这样传递字符串 var:
func (c Helper) ReturnModels(modelName string) []*interface{} {
//do rethinkdb select with modelName and return []*interface{} for modelName
}
像这样,我可以只有一个帮助器来返回数据类型,而不是 为不同的模型但相同的数据类型一遍又一遍地做同样的事情。
我的问题是:
- 这可能吗
- 如果可以,您能否指出正确的文档
- 如果没有,我会更乐意回复您的答案 :)
【问题讨论】:
-
正确的轨道@pregmatch +1