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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2024-02-05 22:57:04
転載
642 人が閲覧しました

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

質問の内容

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

リーリー

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

リーリー

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

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


正解


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

リーリー

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

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート