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

时间:2018-05-19 07:46:36

标签: go

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

我创建了一个带有导出字段A的类型X,并在Update更新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 的更新值?

1 个答案:

答案 0 :(得分:0)

您应该在指针接收器中将结构的广告指针定义为:

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

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