我正在努力理解如何将自定义结构保存在另一个结构中(还有很多其他的东西)。目前我的代码如下所示:
type dogs struct {
bleeh string
blaah string
bluuh string
}
type Stuff struct {
collection *mgo.Collection
//myAnimalStruct what type comes here?
}
func NewStuff(c *mgo.Collection) *Stuff {
return &Stuff{
collection: c
}
}
func getAll(s *Stuff) interface{} {
collection = s.collection
var results []dogs
err := collection.Find(bson.M{}).All(&results)
if err != nil {
panic(err)
}
return results
}
现在,我想去掉 getAll 函数中的 var 结果 []dogs。相反,我想以某种方式从我的 Stuff 结构中获取 []dogs 位,但我不知道如何。
这就是我调用这个函数的方式:
func getMeDogs(w http.ResponseWriter, r *http.Request) interface{} {
collection = Collection("animals")
s := NewStuff(collection)
return getAll(s)
}
那么我怎么能对我的 Stuff 结构做一些像 s := NewStuff(collection, dog) 这样的事情而不将它声明为 Stuff 中的狗类型(它可以是任何东西,在另一个函数中它可能是我所知道的猫......) ?
关键是我想为任何其他类型重用这个 getAll 函数,而不是为我所有的 63 只动物制作几乎相同的 getAll 函数。喵。
相关分类