猿问

如何使用映射分配结构类型值?

我想创建一个多维数组,如下所示:


[string][int] = Struct

我编写了以下代码块。当我尝试将结构类型分配给映射时,出现以下错误:


无法在赋值 go 中使用事件(类型 *models.Event)作为类型 map[int]models.Event


这是代码块:


//Get func

func (c *EventController) Get() {

    days := [7]string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}


    m := make(map[string][]map[int]models.Event)


    for _, day := range days {

        var i = 0

        o := orm.NewOrm()

        qs := o.QueryTable("events")

        qs.OrderBy("id")

        qs.Filter("days__name", day)


        var events []*models.Event

        num, err := o.QueryTable("events").RelatedSel().All(&events)


        if err == nil {

            fmt.Printf("%d events read\n", num)


            for _, event := range events {

                m[day][i] = event

                i++

            }

        } else {

            fmt.Println(err)

        }

    }


    c.Data["json"] = m


    // c.TplName = "events.tpl"

    c.ServeJSON()

}


这里有什么问题吗?


米脂
浏览 102回答 1
1回答

慕沐林林

正如 Marc 所定义的,我更新了代码块,如下所示。现在它完美运行了!//Get funcfunc (c *EventController) Get() { days := [7]string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"} m := make(map[string][]*models.Event) for _, day := range days { o := orm.NewOrm() var events []*models.Event num, err := o.QueryTable("events").Filter("day__name__exact", day).RelatedSel().All(&events) fmt.Print("Day: ", day, " Count:", num, "\n") if err != nil { fmt.Printf("%d posts read\n", num) } m[day] = events } c.Data["json"] = m // c.TplName = "events.tpl" c.ServeJSON()}
随时随地看视频慕课网APP

相关分类

Go
我要回答