重複した名前を持つ構造体の埋め込み
同じ名前を持つ 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 サイトの他の関連記事を参照してください。