理解 Go 中的接口方法类型参数
在 Go 泛型中,接口方法不允许有类型参数。此限制源于类型参数提案中概述的基本设计考虑因素。
为什么接口中禁止类型参数?
实现通用抽象
尽管接口方法中不允许类型参数,但该语言提供了另一种方法。您可以将类型参数移至接口类型定义本身,如下所示:
type Reader[V Unmarshaler] interface { Read(bucket []byte, k ...[]byte) ([][]byte, error) ReadDoc(bucket []byte, factory func() (V, error), k ...[]byte) ([]V, error) } type Unmarshaler interface { UnmarshalKV(v []byte) error }
这种方法保留了所需的泛型抽象,而不违反接口方法类型参数限制。
以上是为什么 Go 接口方法不能有类型参数?的详细内容。更多信息请关注PHP中文网其他相关文章!