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 }
このアプローチでは、インターフェイス メソッドの型パラメータの制限に違反することなく、必要な汎用抽象化が保持されます。
以上がインターフェイス メソッドに型パラメータを持たせないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。