我想创建一个多维数组,如下所示:
[string][int] = Struct
我编写了以下代码块。当我尝试将 Struct 类型分配给 map 时,出现以下错误:
cannot use event (type *models.Event) as type map[int]models.Event in assignment go
代码块来了:
//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()
}
这里有什么问题?
最佳答案
正如 Marc 定义的那样,我更新了代码块,如下所示。现在它完美无缺!
//Get func
func (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()
}
关于arrays - 如何使用映射分配结构类型值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59286147/