私は go を使用しており、要求された識別子に基づいてさまざまなタイプのオブジェクトを返すファクトリ関数があります:
リーリーそれぞれの構造タイプを次に示します:
リーリーご覧のとおり、トラックと乗用車には何の共通点もありません。この問題は、newobject(..)
を呼び出すときに、広すぎる型 interface{}
を処理する必要があるために発生します。ジェネリックがあることは知っていますが、そのためにはサポートされているすべての型のリストを型制約内に保持する必要があり、コード ベースでの作業が複雑になります。
基本的に、ここで継承を使用する方法を探していますが、もちろん Go はサポートしていません。代替手段は何ですか?
newobject(..)
関数は、generics のサポートにより実装できます。サポートされているすべての型のリストを型制約に保持する必要はありません。
完全な例は ここ でご覧いただけます。
以上がインターフェースを特定のタイプに制限する方法{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。