我打印时的[]interface{}样子是这样的。[[1 2 3]]我想将其提取[1,2,3]为数组或切片,以便可以对其进行搜索。另一种解决方案是搜索类似1 in的元素[[1 2 3]],这也适用于我。
2 回答
万千封印
TA贡献1891条经验 获得超3个赞
你可以这样做:
// if you know it is a first el in []interface{}
el := arr[0]
// and than you type cast it to []int
if arr, ok := el.([]int); ok {
fmt.Println(arr[0])
}
// or if you want to do the same thing for all elements (searching...)
for _, el := range arr {
if el, ok := el.([]int); ok {
// use el as a []int here
process(el)
}
}
汪汪一只猫
TA贡献1898条经验 获得超8个赞
索引[]interface{}应该像interfaceSlice[0]
例子:
a := []interface{}{1, 2, 3, 4, 5}
d := []interface{}{a}
var b []int
e := d[0].([]interface{})
for i := range e {
b = append(b, e[i].(int))
}
fmt.Println(b)
- 2 回答
- 0 关注
- 189 浏览
添加回答
举报
0/150
提交
取消