gpt4 book ai didi

go - 如何将接口(interface)转换为接口(interface) slice ?

转载 作者:数据小太阳 更新时间:2023-10-29 03:42:42 31 4
gpt4 key购买 nike

我的输入是一个接口(interface){},我知道它可以是任何类型的数组。

我想读取输入中的一个元素,所以我尝试将我的 interface{} 转换为 []interface{},但是会给我以下错误:

panic: interface conversion: interface {} is []map[string]int, not []interface {}

我该如何进行转换? (如果可能,不反射(reflect))。

Playground test

谢谢

最佳答案

涉及reflect的解决方案package .

package main

import (
"fmt"
"reflect"
)

func main() {
var v interface{} = []string{"a", "b", "c"}

var out []interface{}
rv := reflect.ValueOf(v)
if rv.Kind() == reflect.Slice {
for i := 0; i < rv.Len(); i++ {
out = append(out, rv.Index(i).Interface())
}
}
fmt.Println(out)
}
// Output:
// [a b c]

关于go - 如何将接口(interface)转换为接口(interface) slice ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479739/

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