有两种情况:type A struct { A_FIELD string}type B struct { A B_FIELD string}func main() { b := &B{ A_FIELD: "aaaa_field", B_FIELD: "bbbb_field", } }和type A struct { A_FIELD string}type B struct { A B_FIELD string}func main() { b := &B{} b.A_FIELD = "aaaa_field" b.B_FIELD = "bbbb_field" fmt.Printf("Good!")}为什么第二个有效,而第一个无效?我收到编译时异常。我应该如何改变第一个工作?
1 回答
![?](http://img1.sycdn.imooc.com/54584f6d0001759002200220-100-100.jpg)
萧十郎
TA贡献1815条经验 获得超13个赞
为什么第二个有效,而第一个无效?
因为
b.A_FIELD = "aaaa_field"
实际上是
b.A.A_FIELD = "aaaa_field"
变相。
我应该如何改变第一个工作?
func main() {
b := &B{
A: A{
A_FIELD: "aaaa_field",
},
B_FIELD: "bbbb_field",
}
}
您应该阅读在 Effective Go 中嵌入是如何工作的。
- 1 回答
- 0 关注
- 179 浏览
添加回答
举报
0/150
提交
取消