golang中,指针解引用其成员变量的问题

ddxx11223 · 2017-10-06 05:12:18 · 1947 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-10-06 05:12:18 的主题,其中的信息可能已经有所发展或是发生改变。

type nameage struct {
        name string
        age int
    }
    na:=new(nameage)
    (*na).age=25
    //na.age=25
    (*na).name="ddj"
    //na.name="ddj"
    fmt.Println((*na).name)
    fmt.Println(na.name)

以上代码,我发现(*na).agena.age的作用是一样的,打印出来的结果也是一样的。

但是从语法上来看,我认为(*na).name才是合法的,因为na是一个指针,agename都是nameage的成员变量,应该先 (*na)来获取对象,然后再去获取这个对象的成员。

我不知道为什么结果都一样,是go自动处理掉了?还是有其他说法?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1947 次点击  ∙  1 赞  
加入收藏 微博
2 回复  |  直到 2017-10-06 14:24:50
polaris
polaris · #1 · 8年之前

Go 会自动做这个处理

ddxx11223
ddxx11223 · #2 · 8年之前
polarispolaris #1 回复

Go 会自动做这个处理

好吧,谢谢啦

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传