我正在尝试编写以下函数:
func Fill[X any](slice []*X){
for i := range slice {
slice[i] = new(X)
}
}
xs := make([]*int, 10) // fill with nils
Fill(xs) // now fill with new(int)
这很好用,但是……如果我想使用一部分接口并提供具体类型?
func Fill[X, Y any](slice []X){
for i := range slice {
slice[i] = new(Y) // not work!
}
}
xs := make([]sync.Locker, 10) // fill with nils
Fill[sync.Locker,sync.Mutex](xs) // ouch
我尝试了一些组合没有成功,有没有办法或者go1.18不支持这样的关系?
富国沪深
拉风的咖菲猫
随时随地看视频慕课网APP
相关分类