我可以为常用方法创建方法别名:func method1() { fmt.Println("method1")}var Method1 = method1但不能对方法接收者做同样的事情:type Person struct { Name string}func (p *Person) methodReciver() { fmt.Println("method reciver")}var MethodReciver = methodReciver在这种情况下,我在线收到错误消息var MethodReciver = methodReciver:undefined: methodReciver完整代码:package mainimport ( "fmt")type Person struct { Name string}func method1() { fmt.Println("method1")}var Method1 = method1func (p *Person) methodReceiver() { fmt.Println("method receiver")}var MethodReceiver = methodReceiverfunc main() { method1() Method1() p := Person{"Nick"} p.methodReceiver() p.MethodReceiver()}是否可以创建方法别名methodReceiver?
3 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
是的。您可以像这样创建别名:
var MethodReceiver = (*Person).methodReceiver
当你调用它时,你必须提供一个指向 person 对象的指针作为第一个参数:
MethodReceiver(&p)
- 3 回答
- 0 关注
- 207 浏览
添加回答
举报
0/150
提交
取消