gpt4 book ai didi

arrays - 在 Go 中如何访问类型为 []interface{} 的数组的某些部分?

转载 作者:IT王子 更新时间:2023-10-29 01:53:16 24 4
gpt4 key购买 nike

我有一个带有字符串键和不同类型值的映射,打印时它看起来像这样:

map[command:ls count:[1 1]]

检查 reflect.TypeOf 计数时,它返回类型 []interface{}。我无法通过索引访问这些值,如果我尝试将它传递给接受类型为 []interface{} 的参数的函数,它声称我要传递类型为 的值>接口(interface){}

我想访问这个例子中的计数,它是 2 个值。 11

最佳答案

您必须区分类型和基础类型。您的 map 属于 map[string]interface{} 类型。这意味着 count 的值属于 interface{} 类型,其基础类型为 []interface{}。因此,您不能将计数作为 []interface{} 类型传递。在将它用作数组之前,您已经对其进行了类型断言。然后,每个项目都将属于 interface{} 类型,它又可以断言为 int(就像您的数据一样)。

例子:

count := m["count"].([]interface{})
value1 := count[0].(int)
value2 := count[1].(int)

关于arrays - 在 Go 中如何访问类型为 []interface{} 的数组的某些部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24270183/

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