给定以下定义:
type Collector[T, C any] interface {
Collect(T, C) C
}
type mapCollector[K comparable, V any] struct {
GetKey func(result V) K
}
func (m *mapCollector[K, V]) Collect(value V, c *sync.Map) *sync.Map {
c.Store(m.GetKey(value), value)
return c
}
我正在尝试为mapCollector. 这不起作用
func MakeUserMapCollector[K UserId, V User]() *mapCollector[K, V] {
c := mapCollector[K, V]{
GetKey: func(user V) K {
return user.getId()
}
}
return &c
}
相反,我必须重复
func MakeUserMapCollector() *mapCollector[UserId, User] {
c := mapCollector[UserId, User]{
GetKey: func(user User) UserId {
return user.getId()
}
}
}
有没有办法重用MakeUserMapCollector类型参数在函数中声明类型?
慕斯王
相关分类