我有兩個結構之間Golang - 結構
轉換type A struct {
a int
b string
}
type B struct {
A
c string
// more fields
}
我想變量轉換類型A到類型B(A已經在其他定義僅是至關重要的一些部分基本字段,B手中包含「完整」數據)。
是否可能在Go中,或者我是否需要手動複製字段(或者創建一個方法A.GetB()或類似的東西,並使用它將A轉換爲B)?
我有兩個結構之間Golang - 結構
轉換type A struct {
a int
b string
}
type B struct {
A
c string
// more fields
}
我想變量轉換類型A到類型B(A已經在其他定義僅是至關重要的一些部分基本字段,B手中包含「完整」數據)。
是否可能在Go中,或者我是否需要手動複製字段(或者創建一個方法A.GetB()或類似的東西,並使用它將A轉換爲B)?
通過轉換你的意思是這樣的:
func main() {
// create structA of type A
structA := A{a: 42, b: "foo"}
// convert to type B
structB := B{A: structA}
}
這是一個很好的解決方案,我不知道我有一種印象,B.a.a在這個任務後會有不同的價值。 –
A
和B
類型具有不同的基礎類型,因此它們不能互相轉換。沒門。
因此,無論是手動複製還是提供轉換器功能或執行此複製的方法。
是什麼意思 「轉換」 A.data到B.data? – erip
爲什麼你需要將結構類型轉換爲另一種結構類型,當嵌入式結構字段可以從父結構中訪問? –
在C++中,您可以將A作爲B的基類,併爲B提供一個構造函數,它需要一個A(甚至可以使用* move語義*)。這也可能嗎? – Bathsheba