gpt4 book ai didi

go - 为父 golang 结构字段赋值

转载 作者:IT王子 更新时间:2023-10-29 01:50:19 25 4
gpt4 key购买 nike

有两种情况:

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!")
}

为什么第二个可以用,而第一个不行?我收到编译时异常。我应该如何更改第一个才能工作?

最佳答案

Why the second one is working, but the first one is not?

因为

b.A_FIELD = "aaaa_field"

实际上是

b.A.A_FIELD = "aaaa_field"

伪装。

How should I change first one to work?

func main() {
b := &B{
A: A{
A_FIELD: "aaaa_field",
},
B_FIELD: "bbbb_field",
}
}

你应该阅读 how embedding work在 Effective Go 上。

关于go - 为父 golang 结构字段赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com