首頁 >後端開發 >Golang >如何在 Go 中複製具有等效成員但類型不同的結構體?

如何在 Go 中複製具有等效成員但類型不同的結構體?

Linda Hamilton
Linda Hamilton原創
2024-12-11 18:47:14747瀏覽

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

使用等效成員和不同類型複製結構

考慮以下場景:您有兩個不同的結構體Foo 和Bar,每個結構體都擁有相同的結構體成員,但其基礎類型不同。您的目標是將一個結構的內容傳輸到另一個結構。

在這種情況下,請考慮以下結構定義:

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 的實例 foo 和 Bar 的 bar,如何bar 可以從 foo 複製嗎?

解決方案:輸入轉換

由於 Foo 和 Bar 的基本類型在結構上是等效的,因此可以採用型別轉換來改變物件類型。以下程式碼示範如何使用轉換將Foo 值複製到Bar 值:

foo := Foo{Id: "123", Name: "Joe"}
bar := Bar(foo)

類型相容性說明

記住這種類型轉換技術至關重要僅當結構的基礎類型本質上相同時才有效,除了任何結構標記。

以上是如何在 Go 中複製具有等效成員但類型不同的結構體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn