複製具有相同成員和不同類型的結構體
在Go 中,可能會遇到兩個結構體共享相同成員但具有相同成員的情況不同類型。例如,考慮以下結構體定義:
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),我們可以將值從 foo 複製到 bar 嗎?
使用類型轉換的解決方案
因為 Foo 和 Bar 的底層類型是相同的除了結構標籤之外,我們可以利用類型轉換來更改類型。這涉及到以下步驟:
foo := Foo{Id: "123", Name: "Joe"} bar := Bar(foo)
Playground 範例
您可以在Go Playground 範例
您可以在此解決方案:此解決方案https://go.dev/play /p/j5jL1XFs-zG
注意:僅當基礎類型相同(結構標記除外)時,轉換才有效。結構中的複雜類型(例如映射、切片或陣列)需要更詳細的方法來複製值。以上是Go 的類型轉換可以在具有相同成員但不同類型的結構之間複製值嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!