drd*_*dot 0 generics interface go
我正在尝试使用泛型构建一个函数,它将接口切片转换为 T 类型的切片。
我想出了以下内容:
func convertInterfaceArray[T any](input []any, res []T) {
for _, item := range input {
res = append(res, item.(reflect.TypeOf(res[0])))
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会编译。但你明白了。T 可以是任何类型,我有一个 []any 类型的输入切片需要转换为 []T
断言要键入的值T。不需要反思。
for _, item := range input {
res = append(res, item.(T))
}
Run Code Online (Sandbox Code Playgroud)
https://go.dev/play/p/cFn_nsVFIik