为了账号安全,请及时绑定邮箱和手机立即绑定

为父 golang 结构字段赋值

为父 golang 结构字段赋值

Go
守着一只汪 2021-10-18 11:06:58
有两种情况: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 回答

?
萧十郎

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 中嵌入是如何工作的。


查看完整回答
反对 回复 2021-10-18
  • 1 回答
  • 0 关注
  • 179 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信