我有一张地图myMap := make(map[string]interface{})此地图元素之一是 []map[string]string 数组myMap["element"] = []map[string]string我怎样才能迭代这个数组?
1 回答
RISEBY
TA贡献1856条经验 获得超5个赞
您不能迭代 type 的值interface{}
,这是您将从映射中的任何键的查找返回的类型(因为它具有 type map[string]interface{}
)。
您应该使用类型断言来获取该类型的值,然后您可以在其范围内。
myElt := myMap["element"]
v, ok := myElt.([]map[string]string)
if !ok {
// TODO: Handle the error
}
for i, item := range v {
// TODO: do something with each map[string]string item in the slice
}
这是一个使用这些地图类型的人为设置的工作操场示例。
如果您知道该值属于指定的切片类型,则可以省略ok
类型断言中的检查。如果您正在使用其他人的通用映射实现(具有 type 的键interface{}
)并且知道您只使用 type 的值填充它,则可能会出现这种情况[]map[string]string
。但是,请谨慎行事:如果您从映射中获取的值不是这种类型,并且您忽略了检查,您的程序将会崩溃。
- 1 回答
- 0 关注
- 94 浏览
添加回答
举报
0/150
提交
取消