對于基本類型,如果它們的基礎類型相同,我們可以很容易地強制轉(zhuǎn)換類型。但是,具有相同內(nèi)存布局的結(jié)構(gòu)中的字段不能輕松地從一種類型轉(zhuǎn)換為另一種類型。有一個關(guān)于這個問題的建議,不幸的是它被拒絕了。經(jīng)過一個小時的谷歌搜索,沒有運氣,我來到這里尋求專家的幫助。看看下面的例子:package mainimport ( "fmt")type Int inttype A struct { name string age Int}type B struct { name string age int}func main() { var a A= A{"Foo",21} var b B= B{"Bar", 21} fmt.Println(a,b,(A)(b)) //Error here as expected}even盡管結(jié)構(gòu) A 和 B 具有相同的底層類型,為什么我不能像底層類型一樣相互轉(zhuǎn)換。除非基礎類型不同,否則是否可以遞歸強制轉(zhuǎn)換?struct { string,int}Intint
具有相同基礎類型的類型轉(zhuǎn)換結(jié)構(gòu)
慕運維8079593
2022-08-01 09:24:57