ホームページ  >  記事  >  バックエンド開発  >  Go で異なる構造体型間で変換するにはどうすればよいですか?

Go で異なる構造体型間で変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-27 04:25:03764ブラウズ

How can I convert between different struct types in Go?

Go での構造体の変換

Go では、構造体は名前付きフィールドでデータを表す便利な方法を提供します。ただし、異なる型の構造体を変換する必要がある状況が発生する可能性があります。

次の例を考えてみましょう。

<code class="go">type A struct {
    a int
    b string
}

type B struct {
    A
    c string
    // more fields
}</code>

型 A の変数があり、それを型に変換するとします。 B. Go にはこの変換のための組み込みメカニズムはありますか?

答えは「はい」です。 Go では、構造体フィールドを埋め込むことができるため、構造体間の変換が簡単に行えます。上の例では、B には A が埋め込まれています。これは、A のすべてのフィールドが独自のフィールドとして含まれていることを意味します。

型 A の変数を型 B に変換するには、単に A の値を

<code class="go">func main() {
    // create structA of type A
    structA := A{a: 42, b: "foo"}

    // convert to type B
    structB := B{A: structA}
}</code>

このコードは、structA の値を structB の埋め込み A フィールドに割り当て、事実上、structA を型 B に変換します。

以上がGo で異なる構造体型間で変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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