ホームページ >バックエンド開発 >Golang >同じ名前の構造体を埋め込むときに重複フィールドの問題を解決するにはどうすればよいですか?

同じ名前の構造体を埋め込むときに重複フィールドの問題を解決するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-05 06:55:02651ブラウズ

How to Resolve Duplicate Field Issues When Embedding Same-Named Structs?

2 つの同じ名前の構造体を埋め込む際の重複フィールドの問題を解決する

単一の構造体内に同じ名前の複数の型を埋め込むと、重複フィールドの問題。これは、SQL ストアとファイル ストアの両方をデータストア構造体内に埋め込もうとすると明らかであり、冗長な "Store" フィールドが生じます。

代替アプローチ: エイリアスと入力してください

この競合を解決するには、型エイリアスの使用を検討してください。これには、埋め込み型の新しい名前を作成し、元の型の代替スペルを効果的に作成することが含まれます。

たとえば、提供された例では、SQL ストアを表す「SqlStore」という型エイリアスを定義できます。 :

<code class="go">type SqlStore = sql.Store</code>

エイリアスが確立されると、データストア構造体は fileStore とともに「SqlStore」を埋め込むことができます:

<code class="go">type datastore struct {
    *SqlStore
    *file.Store
}</code>

型エイリアスを利用することで、競合するフィールド名が回避されます、エイリアスによって埋め込み SQL ストア タイプに個別のスペルが作成され、重複フィールドの問題が解決されるためです。

以上が同じ名前の構造体を埋め込むときに重複フィールドの問題を解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。