ホームページ > バックエンド開発 > Golang > Go で同等のメンバーを含むが型が異なる構造体を複製するにはどうすればよいですか?

Go で同等のメンバーを含むが型が異なる構造体を複製するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-11 18:47:14
オリジナル
761 人が閲覧しました

How Can I Duplicate a Struct with Equivalent Members but Dissimilar Types in Go?

同等のメンバーと異なる型を持つ構造体の複製

次のシナリオを考えてみましょう: Foo と Bar という 2 つの異なる構造体があり、それぞれが同一の構造体を持っています。メンバーですが、基礎となるタイプが異なります。目的は、ある構造体の内容を別の構造体に転送することです。

この例では、次の構造体の定義を考慮します。

type Common struct {
    Gender int
    From   string
    To     string
}

type Foo struct {
    Id    string
    Name  string
    Extra Common
}

type Bar struct {
    Id    string
    Name  string
    Extra Common
}
ログイン後にコピー

与えられたインスタンス foo of Foo と bar of Bar、どのようにbar は foo から複製できますか?

解決策: 次のように入力します。変換

Foo と Bar の基本型は構造的に同等であるため、型変換を使用してオブジェクトの型を変更できます。次のコードは、変換を使用して Foo 値を Bar 値にコピーする方法を示しています。

foo := Foo{Id: "123", Name: "Joe"}
bar := Bar(foo)
ログイン後にコピー

型の互換性に関する注意

この型変換手法は次のことを覚えておくことが重要です。構造体の基礎となる型が、構造体タグを除いて本質的に同一である場合にのみ有効です。

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

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