修改字段值以在 Go 中构造指针

Modifying field values to struct pointers in Go

刚接触 Golang 并试图理解我 运行 跨越的代码片段。在我正在阅读的博客中,他们定义了一个 Vertex 结构,如下所示:

type Vertex struct {
  X int
  Y int
}

然后展示如何创建它的新实例并修改其字段之一的示例:

v1 := Vertex{1,2}
v1.X = 3

然而,他们展示了一个示例,说明如何创建指向此结构实例的 指针 并修改其字段之一:

v2 := &Vertex{3,4}
v2.X = 3

这让我有点困惑。对我来说,语句 v2 := &Vertex{3,4} t运行 会变成:“v2 是一个指向新 Vertex{3,4} 实例 的指针”。如果那是真的,那么如果 v2 是指向 Vertex 结构的 指针 ,而不是 Vertex 结构本身,那么我们如何调用 v2.X在上面(是指针!!!)?

使用指针访问结构字段,您不需要明确取消引用。

这就是 v2.X(*v2).X

相同的原因

查找更多详细信息here