為什么我們不稱 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 關注
- 97 瀏覽
添加回答
舉報
0/150
提交
取消