为什么我们不称 person 字段为embedded?“type user struct { name string email string} type admin struct { person user // NOT Embedding level string}”但在像下面这样的其他情况下,我们称之为嵌入式:“type user struct { name string email string} type admin struct { user // Value Semantic Embedding level string}”我认为这person也像值/指针语义嵌入一样被嵌入。我在这里缺少什么?
2 回答
扬帆大鱼
TA贡献1799条经验 获得超9个赞
使用第一段代码,您不能将admin对象视为user对象,例如使用成员访问或类型断言。这也会影响嵌入结构如何满足interfaces。
例如,以下代码适用于适当的嵌入,但不适用于简单的成员结构:
var a admin
a.name = "asdfg"
u := a.(user)
- 2 回答
- 0 关注
- 62 浏览
添加回答
举报
0/150
提交
取消