func GAddAll[E int, S ~[]E](e E, s S) S {
copyS := make(S, len(s))
for i, v := range s {
copyS[i] = v + e
}
return copyS
}
对于上面的代码,如果我这样实例化,运行时会报错(cannot infer S)
b := GAddAll[int]
fmt.Printf("%v", b(3, []int{1, 2}))
但它像这样工作得很好
fmt.Printf("%v", GAddAll[int](3, []int{1, 2}))
我想知道为什么。
富国沪深
相关分类