gpt4 book ai didi

arrays - 如何在接口(interface){}中迭代数组?

转载 作者:IT王子 更新时间:2023-10-29 02:26:10 25 4
gpt4 key购买 nike

我有一张 map

myMap := make(map[string]interface{})

其中一个 map 元素是 []map[string]string 的数组

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

如何迭代这个数组?

最佳答案

您不能遍历 interface{} 类型的值,这是您从 map 中的任何键上查找返回的类型(因为它的类型为 映射[字符串]接口(interface){}).

你应该使用 type assertion获取该类型的值,然后您可以在其范围内。

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
}

这是一个 working playground example为这些 map 类型使用人为设置。


如果您知道该值属于指定的 slice 类型,则可以省略类型断言中的 ok 检查。如果您正在使用其他人的通用 map 实现(具有 interface{} 类型的键)并且知道您只使用 []map[string 类型的值填充它,则可能会出现这种情况]字符串。但是,请谨慎行事:如果您从 map 中获取的值不是,并且您忽略了检查,您的程序将会崩溃。

关于arrays - 如何在接口(interface){}中迭代数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com