2 回答
TA贡献1966条经验 获得超4个赞
您可以重新定义方法以接受keys类型参数interface{}以及指示参数底层切片中元素数量的length类型参数,此长度将由调用者提供。intkeys
func (db *myDB) QueryWithKeys(keys interface{}, length int) ([]*models.Player) {
var players = make([]*models.Player, length)
_ := db.Model(&players).Where("id in (?)", pg.In(keys)).Select()
// several other equal code here
return players
}
有了它,您就可以像这样使用它:
var keys []int = // get list of integers from wherever
players := db.QueryWithKeys(keys, len(keys))
var keys2 []*int = // get list of integer pointers from wherever
players2 := db.QueryWithKeys(keys2, len(keys2))
TA贡献1817条经验 获得超6个赞
您可以做的是让 QueryWithKeys 方法调用 QueryWithPointerKeys 方法,然后放入一个指向键整数的指针。明显的缺点是处理时间会更长一些。
- 2 回答
- 0 关注
- 147 浏览
添加回答
举报
