为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕田峪7331174 2022-05-18 16:04:25
我想我缺少技术背景的一部分。但我不明白,为什么我必须使用 * 来访问简单指针的值,而不是访问结构的值。例如一个简单的值: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那么,为什么我不必使用星号来访问结构指针呢?
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

您在此处找到该示例的官方 Golang 之旅 [此处] 明确表示:

当我们拥有可以编写X的结构指针时访问结构的字段。但是,这种表示法很麻烦,因此该语言允许我们只写,而无需显式取消引用。p(*p).Xp.X


查看完整回答
反对 回复 2022-05-18
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号