2 回答
TA貢獻1789條經(jīng)驗 獲得超8個贊
與 Burak Serdar 交談幫助我們找到了答案!data["providers"]你必須斷言primitive.M
for key, provider := range data["providers"].(primitive.M){...}需要注意的關鍵點:primitive.M 的處理方式類似于 map[string]interface{}
正如 Burak Serdar 所提到的,我不能將primitive.M 的這個實例斷言為 map[string]string,因為interfaceinmap[string]interface{}是 type primitive.M。所以相反,我必須將對象斷言為providers對象primitive.M,然后我可以正常循環(huán)它。
我無法將primitive.M 轉換為map[string]string
TA貢獻1963條經(jīng)驗 獲得超6個贊
map[string]interface{}to的類型斷言map[string]string將失敗,因為它是類型斷言,而不是類型轉換。它只檢查接口類型是否是你認為的那樣,在這種情況下,它不是。您必須迭代map[string]interface{}, 并對值進行類型斷言:
for k,v:=range data.(primitive.M)["providers"] {
if str, ok:=v.(string); ok {
// Use k and str
}
}
- 2 回答
- 0 關注
- 404 瀏覽
添加回答
舉報
