Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在接口{}中迭代数组?_Arrays_Loops_Dictionary_Go - Fatal编程技术网

Arrays 如何在接口{}中迭代数组?

Arrays 如何在接口{}中迭代数组?,arrays,loops,dictionary,go,Arrays,Loops,Dictionary,Go,我有一张地图 myMap := make(map[string]interface{}) 此映射元素之一是[]映射[string]字符串的数组 myMap["element"] = []map[string]string 如何迭代此数组?您不能迭代类型为interface{}的值,该类型是您将从对映射中任何键的查找中返回的类型(因为它具有类型map[string]interface{}) 您应该使用获取该类型的值,然后在该值上设置范围 myElt := myMap["element"] v,

我有一张地图

myMap := make(map[string]interface{})
此映射元素之一是[]映射[string]字符串的数组

myMap["element"] = []map[string]string

如何迭代此数组?

您不能迭代类型为
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
}
下面是一个为这些贴图类型使用人为设置的示例



如果知道该值属于指定的切片类型,则可以在类型断言中省略
ok
复选框。如果您正在使用其他人的通用映射实现(具有
接口{}
类型的键),并且知道您只使用
[]map[string]string
类型的值填充它,则可能会出现这种情况。但是,请注意:如果您从映射中获取的值不是此类型的值,并且您忽略了检查,那么您的程序将死机。

您不能迭代
接口{}
类型的值,这是您从映射中任何键的查找中返回的类型(因为它具有类型
映射[字符串]接口{}

您应该使用获取该类型的值,然后在该值上设置范围

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
复选框。如果您正在使用其他人的通用映射实现(具有
接口{}
类型的键),并且知道您只使用
[]map[string]string
类型的值填充它,则可能会出现这种情况。但是,请注意:如果您从映射中获取的值不是此类型,并且忽略了检查,则程序将死机。

从该元素键入assert
[]映射[string]string
,您可以循环该元素。从该元素键入assert
[]映射[string]string
,您可以循环该元素。