golang缺少len参数

时间:2019-03-14 02:15:56

标签: api go controller beego

如何将行作为map [string] map [string] interface {}

  

不能在分配中使用s.ID(类型字符串)作为map [string] interface {}类型

var x = ['day 1', 'day 1', 'day 1', 'day 1', 'day 1', 'day 1',
         'day 2', 'day 2', 'day 2', 'day 2', 'day 2', 'day 2']

列表服务器

var row = make(map[string]map[string]interface{})

}

1 个答案:

答案 0 :(得分:3)

rowmap[string]interface{}的SLICE。像这样初始化切片时,需要提供长度:

row := make([]map[string]interface{}, 0)

切片的索引必须是整数,这就是为什么您遇到注释中提到的第二个问题的原因。

让我们假设serverList是一个切片。您的代码可能被修改为:

rows := make([]map[string]interface{}, 0)   // create a slice
// ... codes omitted
    for _, s := range serverList {
        row := make(map[string]interface{}) // create an item

        row["ID"] = s.ID
        row["Name"] = s.Name
        // ... codes omitted
        row["Flavor"] = s.Flavor
        row["Created"] = time.Now().Sub(t)
        row["Status"] = s.Status
        rows = append(rows, row) // append the item to the slice
    }

return rows, err