Я думаю, что мне не хватает технических знаний. Но я не понимаю, почему я должен использовать * для доступа к значению простого указателя, но не для доступа к значениям структуры.
Например, с простым значением:
func main() {
i := 42
p := &i
*p = 21 // <<< I have to use an asterisk to access the value
// ...
}
И пример со структурой:
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
// ...
}
(да, образцы взяты из официального тура go lang здесь: https://go-tour-de.appspot.com/moretypes/4)
Только из моих мыслей я ожидал что-то вроде этого
*p.X = 1e9
или (да, это было бы несколько странно)
p.*X = 1e9
Итак, почему бы мне не использовать звездочка для доступа к указателю структуры?