对于基本类型,如果它们的基础类型相同,我们可以很容易地强制转换类型。但是,具有相同内存布局的结构中的字段不能轻松地从一种类型转换为另一种类型。有一个关于这个问题的建议,不幸的是它被拒绝了。经过一个小时的谷歌搜索,没有运气,我来到这里寻求专家的帮助。
看看下面的例子:
package main
import (
"fmt"
)
type Int int
type 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尽管结构 A 和 B 具有相同的底层类型,为什么我不能像底层类型一样相互转换。除非基础类型不同,否则是否可以递归强制转换?struct { string,int}Intint
蛊毒传说
相关分类