如何从golang中的[]interface{}中提取切片

我打印时的[]interface{}样子是这样的。[[1 2 3]]我想将其提取[1,2,3]为数组或切片,以便可以对其进行搜索。另一种解决方案是搜索类似1 in的元素[[1 2 3]],这也适用于我。



Cats萌萌
浏览 195回答 2
2回答

万千封印

你可以这样做:// if you know it is a first el in []interface{}el := arr[0]// and than you type cast it to []intif 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)    }}

汪汪一只猫

索引[]interface{}应该像interfaceSlice[0]例子:a := []interface{}{1, 2, 3, 4, 5}d := []interface{}{a}var b []inte := d[0].([]interface{})for i := range e {    b = append(b, e[i].(int))}fmt.Println(b)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go