有兩種情況: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!")}為什么第二個(gè)有效,而第一個(gè)無效?我收到編譯時(shí)異常。我應(yīng)該如何改變第一個(gè)工作?
1 回答

蕭十郎
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
為什么第二個(gè)有效,而第一個(gè)無效?
因?yàn)?/p>
b.A_FIELD = "aaaa_field"
實(shí)際上是
b.A.A_FIELD = "aaaa_field"
變相。
我應(yīng)該如何改變第一個(gè)工作?
func main() {
b := &B{
A: A{
A_FIELD: "aaaa_field",
},
B_FIELD: "bbbb_field",
}
}
您應(yīng)該閱讀在 Effective Go 中嵌入是如何工作的。
- 1 回答
- 0 關(guān)注
- 196 瀏覽
添加回答
舉報(bào)
0/150
提交
取消