b.b*_*ben 3 reflection go visual-studio-code
我使用VS Code Go扩展.
这是我的代码
func (this *MyClass) Xxx() error {}
Run Code Online (Sandbox Code Playgroud)
它提到了我
导出的方法
MyClass.Xxx应该有注释或未导出接收者名称应该反映其身份; 不要使用通用名称,如"
me","this"或"self";
由于这里提到
v.Method()实际上是语法糖,Go也理解它的脱糖版本:(T).Method(v).你可以在这里看到一个例子.
package main
type T struct{}
func (t T) Method() {}
func main() {
t := T{}
t.Method() // this is valid
(T).Method(t) // this too
}
Run Code Online (Sandbox Code Playgroud)
像任何其他参数一样命名接收器反映出它实际上只是另一个参数.
在其他语言中,
this/self/whatever变量通常具有一些特殊属性,例如由语言神奇地提供,或者具有对私有方法的特殊访问(记住Go没有私有字段/方法).
虽然"接收器"仍然在某种程度上"神奇地提供",但它与常规函数论证非常相似,它可以说是不计算在内的.
| 归档时间: |
|
| 查看次数: |
2521 次 |
| 最近记录: |