Mar*_*tin 0 arrays dictionary loops go
我有一张地图
myMap := make(map[string]interface{})
Run Code Online (Sandbox Code Playgroud)
其中一个map元素是[] map [string] string的数组
myMap["element"] = []map[string]string
Run Code Online (Sandbox Code Playgroud)
我怎么能迭代这个数组?
您不能迭代类型的值interface{},这是您从地图中任何键的查找返回的类型(因为它具有类型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
}
Run Code Online (Sandbox Code Playgroud)
这是一个使用这些地图类型的人为设置的工作游乐场示例.
如果您知道该值是指定的切片类型,则可以省略ok类型断言中的检查.如果您正在使用其他人的通用地图实现(具有类型的键interface{})并且知道您只使用类型的值填充它,则可能就是这种情况[]map[string]string.但是,请注意:如果您从地图中获得了不属于此类型的值,并且省略了检查,则您的程序将会出现紧急情况.
| 归档时间: |
|
| 查看次数: |
116 次 |
| 最近记录: |