Did*_*tus 2 struct pointers go
我想我错过了一部分技术背景。但我不明白,为什么我必须使用 * 来访问简单指针的值,而不是访问结构的值。
例如一个简单的值:
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)
或者(是的,这有点奇怪)
p.*X = 1e9
Run Code Online (Sandbox Code Playgroud)
那么,为什么我不必使用星号来访问结构指针呢?