亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號