我正在尝试在 1.18beta2 中使用泛型,并且正在尝试为键/值存储 boltdb 编写一个抽象层。这就是我试图用它实现的目标。
type Reader interface {
Read(bucket []byte, k ...[]byte) ([][]byte, error)
ReadDoc[V Unmarshaler](bucket []byte, factory func() (V, error), k ...[]byte) ([]V, error)
}
type Unmarshaler interface {
UnmarshalKV(v []byte) error
}
这样我就可以为它提供一个工厂来在它找到键/值时创建类型,将数据解组到其中并返回该特定类型的切片。只有我从编译器得到“接口方法必须没有类型参数”。为什么接口中不允许类型参数?是否有计划支持这个?这粉碎了我的梦想......本来是完美的。然而,它确实在界面之外工作。
白衣染霜花
相关分类