Go编程语言中的“方法需要指针接收器”

Go编程语言中的“方法需要指针接收器”,第1张

Go编程语言中的“方法需要指针接收器”

我认为这里有些混乱。

inc
是类型的方法
*entity
,而不是类型的方法
entity
(虽然您可以直接在指针上调用值的方法;通常不能直接在值上调用指针的方法)。您可能会感到困惑的是为什么您可以打电话
e.inc()
而不是去打电话
(&e).inc()
。这是一个鲜为人知的特殊情况,在语言规范的“
调用”部分的底部有说明,即如果
x
是可寻址的,并且
&x
方法集包含
m
x.m()
则为的简写
(&x).m()
。这适用于这种情况,因为
e
是变量,因此是可寻址的;但是其他表达式可能无法寻址。我建议您不要使用此快捷方式,因为它会引起混乱;它使您认为它
e
符合interface
inter
,而事实并非如此。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5586169.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-15

发表评论

登录后才能评论

评论列表(0条)

    保存