В Go, из-за его статического c языка типов, мы можем видеть множество преобразований типов, например,
var x float64
var y =32
x=float64(32)
Даже если 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{
Id:"123",
Name:"damitha",
Extra: struct {
Gender int
From string
To string
}{Gender:1 , From:"xx", To:"yy" },
}
bar:=*(*Bar)(unsafe.Pointer(&foo))
fmt.Printf("%+v\n",bar)
Даже такое сопоставление также можно достичь более безопасными способами.