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}))
我想知道为什么。
紫衣仙女
富国沪深
随时随地看视频慕课网APP
相关分类