访问嵌入式类型导出的字段无法正常工作[重复]

问题描述 投票:1回答:1

我试图理解嵌入Go,这是我试图做的 -

我创建了一个类型A与导出字段XUpdate更新A功能X与用户提供的输入。

type A struct {
    X int
}

func (a A) Update(v int) {
    a.X = v
}

我定义了两种类型A1A2,并使它们用不同的值更新X。我的期望是A1的更新不会影响A2的更新。所以我这样做了 -

https://play.golang.org/p/Rjh3hyw_nb0

我得到的是输出中的全部0。

首先 - 期望是正确的吗? A1A2对A.X有不同的引用

其次 - 为什么它打印所有0而不是X的更新值?

go
1个回答
0
投票

您应该在指针接收器中定义结构的广告指针,如下所示:

func(a * A)更新(v int){a.X = v}

https://play.golang.org/p/wg7-WvUm7Ra

© www.soinside.com 2019 - 2024. All rights reserved.