猿问

转到另一个结构中的自定义结构类型

我正在努力理解如何将自定义结构保存在另一个结构中(还有很多其他的东西)。目前我的代码如下所示:


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 函数。喵。


烙印99
浏览 218回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答