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

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

“左側的非接口類型映射 [字符串] 接口 {}”錯誤

“左側的非接口類型映射 [字符串] 接口 {}”錯誤

Go
MMTTMM 2022-06-06 17:52:51
我有一個結構: type ListsObj struct {    Page   string                   `json:"pages"`    Count  string                   `json:"count"`    Lists []map[string]interface{} `json:"assets"`}我正在嘗試執行以下操作:lists := a.Listsfor _, list:= range lists{    listData := list.(map[string]interface {})}a是ListsObj結構類型。我收到以下錯誤:無效類型斷言:list.(map[string])(左側的非接口類型 map[string]interface {})編輯:我真正需要做的是調用一個函數:func WriteMapper(a interface {}) interface{}  {}lists := a.Listsfor _, list:= range lists{    list = WriteMapper(list)}但這給出了另一個錯誤:不能在賦值中使用 WriteMapper(list) (type interface {}) 作為 type map[string]interface {}:需要類型斷言編輯:我想我明白了......函數返回interface,我試圖將它分配給map[string]interface {}??
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

在您的代碼中,a.Lists(因此也是lists)是 a []map[string]interface{},一片地圖。然后,您將迭代該切片,并將每次迭代的值分配給變量list(這有點奇怪,因為它持有 a map,但這是一個單獨的問題)。


現在,list是類型map[string]interface{}。您無需對其進行類型斷言,因為它已經是那種類型了!


要按list原樣使用map[string]interface{},只需使用它:


for _, list := range lists {

    someValue := list["some-key"]

    fmt.Println(someValue)

}

如果您嘗試做一些與僅使用地圖不同的事情,我會要求您澄清一下。


查看完整回答
反對 回復 2022-06-06
  • 1 回答
  • 0 關注
  • 452 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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