为了账号安全,请及时绑定邮箱和手机立即绑定

golang 缺少 len 参数

golang 缺少 len 参数

Go
ibeautiful 2023-06-12 19:09:03
如何使行成为 map[string]map[string]interface{}不能在赋值中使用 s.ID(字符串类型)作为 map[string]interface {} 类型var row = make(map[string]map[string]interface{})列表服务器func ListServers() (map[string]map[string]interface{}, error) {listOptions := servers.ListOpts{}pager := servers.List(GetClientCompute(), listOptions)err := pager.EachPage(func(page pagination.Page) (bool, error) {    serverList, err := servers.ExtractServers(page)    if err != nil {        fmt.Println(err)    }    for _, s := range serverList {        row["ID"] = s.ID                                 <---- error is here        row["Name"] = s.Name                                 <---- error is here        if s.Addresses["public"] != nil {            for _, i := range s.Addresses["public"].([]interface{}) {                temp := i.(map[string]interface{})                if temp["version"].(float64) == 4 {                    row["IP"] = temp["addr"]                }            }        }        t, _ := time.Parse(time.RFC3339, s.Created)        row["Flavor"] = s.Flavor        row["Created"] = time.Now().Sub(t)                                 <---- error is here        row["Status"] = s.Status                                 <---- error is here    }    return false, nil})// fmt.Println(lists)return row, err}
查看完整描述

1 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

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


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


查看完整回答
反对 回复 2023-06-12
  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信