小编Did*_*tus的帖子

为什么指针必须使用星号而不是结构指针?

我想我错过了一部分技术背景。但我不明白,为什么我必须使用 * 来访问简单指针的值,而不是访问结构的值。

例如一个简单的值:

func main() {
    i := 42
    p := &i
    *p = 21         // <<< I have to use an asterisk to access the value
    // ...
}
Run Code Online (Sandbox Code Playgroud)

和一个带有结构的例子:

type Vertex struct {
    X int
    Y int
}

func main() {
    v := Vertex{1, 2}
    p := &v
    p.X = 1e9       // <<< I do not have to use an asterisk
    // ...
}
Run Code Online (Sandbox Code Playgroud)

(是的,示例来自此处的官方 go lang tour:https : //go-tour-de.appspot.com/moretypes/4

就我的想法而言,我会期待这样的事情

    *p.X = 1e9
Run Code Online (Sandbox Code Playgroud)

或者(是的,这有点奇怪) …

struct pointers go

2
推荐指数
1
解决办法
166
查看次数

标签 统计

go ×1

pointers ×1

struct ×1