登录
首页 >  Golang >  Go问答

默认情况下,指针是否在方法内部取消引用?

来源:Golang技术栈

时间:2023-04-12 13:59:45 163浏览 收藏

你在学习Golang相关的知识吗?本文《默认情况下,指针是否在方法内部取消引用?》,主要介绍的内容就涉及到golang,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

我对 Go 结构中的方法感到困惑。我在一个教程中跟随他们:

func (p *Page) save() error {
    filename := p.Title + ".txt"
    return ioutil.WriteFile(filename, p.Body, 0600)
}

据我了解,p是指针,您需要在检索属性之前取消引用指针,例如:

filename := (*p).Title + ".txt"

这对我来说有意义的唯一方法是如果点->在 C++ 中表现得像。我错过了什么?

正确答案

是的,指向结构的指针会自动取消引用。从选择器的规范中

以下规则适用于选择器:

  1. 对于xtypeT*TwhereT不是指针或接口类型的值,表示 存在此类 的x.f最浅深度的字段或方法。如果不完全有一个深度最浅的,则选择器表达式是非法的。T``f``f

...

  1. 作为一个例外,如果 的类型x是命名指针类型并且(*x).f是表示字段(但不是方法)的有效选择器表达式,x.f则为(*x).f.

因此,以下两个陈述是相同的(首选第一个):

filename := p.Title + ".txt"
filename := (*p).Title + ".txt"

本篇关于《默认情况下,指针是否在方法内部取消引用?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:Golang技术栈 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表