修改字段值以在 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
刚接触 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