我对Go中结构的方法感到困惑.我一直在他们的教程中跟随:
func (p *Page) save() error {
filename := p.Title + ".txt"
return ioutil.WriteFile(filename, p.Body, 0600)
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,p是指针,你需要在检索属性之前取消引用指针,例如:
filename := (*p).Title + ".txt"
Run Code Online (Sandbox Code Playgroud)
对我来说唯一有意义的方法是点如果像->C++一样.我错过了什么?
Tim*_*per 23
以下规则适用于选择器:
- 对于值
x类型的T或*T其中T不是指针或接口类型,x.f表示在最浅深度域或方法T,其中有这样一个f.如果没有一个f深度最浅的选择器表达式是非法的....
- 作为例外,如果类型
x是命名指针类型并且(*x).f是表示字段(但不是方法)的有效选择器表达式,x.f则是简写(*x).f.
因此,以下两个语句是相同的(第一个是首选):
filename := p.Title + ".txt"
filename := (*p).Title + ".txt"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3884 次 |
| 最近记录: |