我是 golang 的新手,我想將查詢結(jié)果聚合到一個(gè)results切片中以推送到瀏覽器。這是代碼:type Category struct { Id bson.ObjectId `bson:"_id,omitempty"` Name string Description string Tasks []Task}type Cats struct { category Category} func CategoriesCtrl(w http.ResponseWriter, req *http.Request) { session, err := mgo.Dial("localhost") if err != nil { panic(err) } defer session.Close() session.SetMode(mgo.Monotonic, true) c := session.DB("taskdb").C("categories") iter := c.Find(nil).Iter() result := Category{} results := []Cats //Here is the problem for iter.Next(&result) { results = append(results, result) fmt.Printf("Category:%s, Description:%s\n", result.Name, result.Description) tasks := result.Tasks for _, v := range tasks { fmt.Printf("Task:%s Due:%v\n", v.Description, v.Due) } } if err = iter.Close(); err != nil { log.Fatal(err) } fmt.Fprint(w, results) }但相反我得到type []Cats 不是表達(dá)式我怎樣才能解決這個(gè)問題?
2 回答

互換的青春
TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以說
results := make([]Cats, 0)
或者
var results []Cats
或者
results := []Cats{}
反而。

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
您可以results := make([]Cats, len)
改用, wherelen
是切片的初始長(zhǎng)度。
results := []Cats{}
也會(huì)起作用。
如果你使用var results []Cats
,它的初始值是nil
你需要在使用之前初始化它append
。
- 2 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報(bào)
0/150
提交
取消