Go 中的結構體轉換
問:我有兩個不同欄位的結構體。如何將類型 A 的變數轉換為類型 B,其中 A 僅包含基本欄位而 B 包含附加欄位?是否可以直接執行此轉換,還是需要手動複製欄位?
A:在 Go 中,可以利用嵌入功能來執行結構體轉換。這允許您將一個結構的字段嵌套在另一個結構中。例如,在您的情況下,您有一個具有兩個欄位(a 和 b)的結構體 A,以及一個嵌入結構體 A 並添加其他欄位(c 和可能更多)的結構體 B。
從 A 轉換對於 B,您可以簡單地建立 B 結構體並在其中嵌入 A 的實例:
<code class="go">type A struct { a int b string } type B struct { A c string } func main() { // create structA of type A structA := A{a: 42, b: "foo"} // convert to type B structB := B{A: structA} // access the fields of structB fmt.Println(structB.a, structB.b, structB.c) // Output: 42 foo (additional value) }</code>
以上是如何在具有不同欄位的 Go 結構之間進行轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!