ホームページ >バックエンド開発 >Golang >インターフェースを特定のタイプに制限する方法{}

インターフェースを特定のタイプに制限する方法{}

WBOY
WBOY転載
2024-02-05 22:57:04584ブラウズ

インターフェースを特定のタイプに制限する方法{}

質問の内容

私は go を使用しており、要求された識別子に基づいてさまざまなタイプのオブジェクトを返すファクトリ関数があります:

リーリー

それぞれの構造タイプを次に示します:

リーリー

ご覧のとおり、トラックと乗用車には何の共通点もありません。この問題は、newobject(..) を呼び出すときに、広すぎる型 interface{} を処理する必要があるために発生します。ジェネリックがあることは知っていますが、そのためにはサポートされているすべての型のリストを型制約内に保持する必要があり、コード ベースでの作業が複雑になります。

基本的に、ここで継承を使用する方法を探していますが、もちろん Go はサポートしていません。代替手段は何ですか?


正解


newobject(..)関数は、generics のサポートにより実装できます。サポートされているすべての型のリストを型制約に保持する必要はありません。

リーリー

完全な例は ここ でご覧いただけます。

以上がインターフェースを特定のタイプに制限する方法{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。