相关疑难解决方法(0)

如何迭代通用函数中传递的切片并集?(T无芯型)

我正在 go 1.18 中测试泛型并查看了这个示例。我想重新创建该示例,但能够传入 int 切片或 float 切片,并且在函数中我将总结切片中的所有内容。

这是我在迭代切片时遇到一些问题的时候。这是我尝试过的:

package main

import "fmt"

// NumberSlice constraint
type NumberSlice interface {
    []int64 | []float64
}

func add[N NumberSlice](n N) {
    // want: to range over n and print value of v 
    for _, v := range n {
        fmt.Println(v)
    }
}

func main() {
    ints := []int64{1, 2}
    add(ints)
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:

范围不能超过 n(N 类型的变量受 NumberSlice 约束)(N 没有核心类型)

我该如何实现这个目标?

generics go

6
推荐指数
1
解决办法
4212
查看次数

标签 统计

generics ×1

go ×1