我正在 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 没有核心类型)
我该如何实现这个目标?