重複した名前を持つ構造体の埋め込み
同じ名前を持つ 2 つの異なる構造体型をより大きな構造体に埋め込もうとすると、コンパイル エラーが発生します。フィールド名が重複しているために発生します。これは、特に両方の埋め込み構造体を必要とするインターフェイスを実装する場合に、複雑になる可能性があります。
代替解決策: 型エイリアス
この課題を克服するには、実行可能な代替手段の 1 つを使用することです。タイプのエイリアス。型エイリアスは、新しい個別の型を作成するのではなく、既存の型の代替名を導入します。埋め込み構造体の 1 つに型エイリアスを割り当てることで、その機能へのアクセスを維持しながら名前の競合を回避できます。
たとえば、次のコードを考えてみましょう。
<code class="go">type SqlStore = sql.Store // type alias type datastore struct { *SqlStore *file.Store }</code>
このコードではでは、SqlStore という名前の型エイリアスが sql.Store 型に割り当てられます。その結果、データストア構造体のフィールド SqlStore は、sql.Store と同じ型の、名前が異なるインスタンスを指します。
型エイリアスの利点
型エイリアスの使用にはいくつかの利点があります:
結論
型エイリアスは、同じ名前の構造体をより大きな構造体に埋め込むための実用的なソリューションを提供します。 。代替名を提供することで、名前の競合が効果的に解決され、コンパイル エラーが発生することなく、複数の埋め込み構造体を必要とするインターフェイスを実装できるようになります。
以上が重複した名前を持つ構造体を Go に埋め込むにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。